< Summary

Line coverage
100%
Covered lines: 140
Uncovered lines: 0
Coverable lines: 140
Total lines: 187
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
File 1: Up(...)100%11100%
File 1: Down(...)100%11100%
File 2: BuildTargetModel(...)100%11100%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Migrations/20260719110000_AddApplicationAuditCompletionOutbox.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Migrations;
 2
 3#nullable disable
 4
 5namespace ProjectTemplate.Infrastructure.Data.Migrations;
 6
 7/// <inheritdoc />
 8public partial class AddApplicationAuditCompletionOutbox : Migration
 9{
 10    /// <inheritdoc />
 11    protected override void Up(MigrationBuilder migrationBuilder)
 12    {
 113        migrationBuilder.CreateTable(
 114            name: "ApplicationAuditCompletionOutbox",
 115            columns: table => new
 116            {
 117                Id = table.Column<Guid>(type: "TEXT", nullable: false),
 118                SchemaVersion = table.Column<string>(type: "TEXT", maxLength: 32, nullable: false),
 119                Destination = table.Column<string>(type: "TEXT", maxLength: 128, nullable: false),
 120                IdempotencyKey = table.Column<string>(type: "TEXT", maxLength: 128, nullable: false),
 121                MutationBatchId = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false),
 122                AuditRecordCount = table.Column<int>(type: "INTEGER", nullable: false),
 123                PersistenceOutcome = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false),
 124                ReceiptCompletedUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: false),
 125                MutationManifestHash = table.Column<string>(type: "TEXT", maxLength: 256, nullable: false),
 126                MutationManifestAlgorithm = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false),
 127                MutationManifestSchemaVersion = table.Column<string>(type: "TEXT", maxLength: 32, nullable: false),
 128                OperationExecutionId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 129                ExecutionAttemptId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 130                DecisionAuditRecordId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 131                CorrelationId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 132                TraceId = table.Column<string>(type: "TEXT", maxLength: 64, nullable: true),
 133                Status = table.Column<string>(type: "TEXT", maxLength: 32, nullable: false),
 134                RetryCount = table.Column<int>(type: "INTEGER", nullable: false),
 135                CreatedUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: false),
 136                LastAttemptUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: true),
 137                NextAttemptUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: true),
 138                DeliveredUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: true),
 139                LastErrorCode = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 140                LastErrorMessage = table.Column<string>(type: "TEXT", maxLength: 512, nullable: true),
 141                ConcurrencyStamp = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false)
 142            },
 143            constraints: table => table.PrimaryKey("PK_ApplicationAuditCompletionOutbox", x => x.Id));
 44
 145        migrationBuilder.CreateIndex(
 146            name: "IX_ApplicationAuditCompletionOutbox_CreatedUtc",
 147            table: "ApplicationAuditCompletionOutbox",
 148            column: "CreatedUtc");
 49
 150        migrationBuilder.CreateIndex(
 151            name: "IX_ApplicationAuditCompletionOutbox_Destination_MutationBatchId",
 152            table: "ApplicationAuditCompletionOutbox",
 153            columns: ["Destination", "MutationBatchId"],
 154            unique: true);
 55
 156        migrationBuilder.CreateIndex(
 157            name: "IX_ApplicationAuditCompletionOutbox_IdempotencyKey",
 158            table: "ApplicationAuditCompletionOutbox",
 159            column: "IdempotencyKey",
 160            unique: true);
 61
 162        migrationBuilder.CreateIndex(
 163            name: "IX_ApplicationAuditCompletionOutbox_Status_NextAttemptUtc",
 164            table: "ApplicationAuditCompletionOutbox",
 165            columns: ["Status", "NextAttemptUtc"]);
 166    }
 67
 68    /// <inheritdoc />
 69    protected override void Down(MigrationBuilder migrationBuilder)
 70    {
 171        migrationBuilder.DropTable(name: "ApplicationAuditCompletionOutbox");
 172    }
 73}

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/Migrations/20260719110000_AddApplicationAuditCompletionOutbox.Designer.cs

#LineLine coverage
 1// <auto-generated />
 2using System;
 3using Microsoft.EntityFrameworkCore;
 4using Microsoft.EntityFrameworkCore.Infrastructure;
 5using Microsoft.EntityFrameworkCore.Migrations;
 6using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
 7using ProjectTemplate.Infrastructure.Data;
 8
 9#nullable disable
 10
 11namespace ProjectTemplate.Infrastructure.Data.Migrations
 12{
 13    [DbContext(typeof(ApplicationDbContext))]
 14    [Migration("20260719110000_AddApplicationAuditCompletionOutbox")]
 15    partial class AddApplicationAuditCompletionOutbox
 16    {
 17        /// <inheritdoc />
 18        protected override void BuildTargetModel(ModelBuilder modelBuilder)
 19        {
 20#pragma warning disable 612, 618
 121            modelBuilder.HasAnnotation("ProductVersion", "10.0.8");
 22
 123            modelBuilder.Entity("ProjectTemplate.Infrastructure.Data.Entities.ApplicationAuditCompletionOutboxEntry", b 
 124                {
 125                    b.Property<Guid>("Id").HasColumnType("TEXT");
 126                    b.Property<int>("AuditRecordCount").HasColumnType("INTEGER");
 127                    b.Property<string>("ConcurrencyStamp").IsConcurrencyToken().IsRequired().HasMaxLength(64).HasColumnT
 128                    b.Property<string>("CorrelationId").HasMaxLength(128).HasColumnType("TEXT");
 129                    b.Property<DateTime>("CreatedUtc").HasPrecision(3).HasColumnType("TEXT");
 130                    b.Property<string>("DecisionAuditRecordId").HasMaxLength(128).HasColumnType("TEXT");
 131                    b.Property<DateTime?>("DeliveredUtc").HasPrecision(3).HasColumnType("TEXT");
 132                    b.Property<string>("Destination").IsRequired().HasMaxLength(128).HasColumnType("TEXT");
 133                    b.Property<string>("ExecutionAttemptId").HasMaxLength(128).HasColumnType("TEXT");
 134                    b.Property<string>("IdempotencyKey").IsRequired().HasMaxLength(128).HasColumnType("TEXT");
 135                    b.Property<DateTime?>("LastAttemptUtc").HasPrecision(3).HasColumnType("TEXT");
 136                    b.Property<string>("LastErrorCode").HasMaxLength(128).HasColumnType("TEXT");
 137                    b.Property<string>("LastErrorMessage").HasMaxLength(512).HasColumnType("TEXT");
 138                    b.Property<string>("MutationBatchId").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 139                    b.Property<string>("MutationManifestAlgorithm").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 140                    b.Property<string>("MutationManifestHash").IsRequired().HasMaxLength(256).HasColumnType("TEXT");
 141                    b.Property<string>("MutationManifestSchemaVersion").IsRequired().HasMaxLength(32).HasColumnType("TEX
 142                    b.Property<DateTime?>("NextAttemptUtc").HasPrecision(3).HasColumnType("TEXT");
 143                    b.Property<string>("OperationExecutionId").HasMaxLength(128).HasColumnType("TEXT");
 144                    b.Property<string>("PersistenceOutcome").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 145                    b.Property<DateTime>("ReceiptCompletedUtc").HasPrecision(3).HasColumnType("TEXT");
 146                    b.Property<int>("RetryCount").HasColumnType("INTEGER");
 147                    b.Property<string>("SchemaVersion").IsRequired().HasMaxLength(32).HasColumnType("TEXT");
 148                    b.Property<string>("Status").IsRequired().HasMaxLength(32).HasColumnType("TEXT");
 149                    b.Property<string>("TraceId").HasMaxLength(64).HasColumnType("TEXT");
 150                    b.HasKey("Id");
 151                    b.HasIndex("CreatedUtc");
 152                    b.HasIndex("IdempotencyKey").IsUnique();
 153                    b.HasIndex("Destination", "MutationBatchId").IsUnique();
 154                    b.HasIndex("Status", "NextAttemptUtc");
 155                    b.ToTable("ApplicationAuditCompletionOutbox", (string)null);
 156                });
 57
 158            modelBuilder.Entity("ProjectTemplate.Infrastructure.Data.Entities.AuditRecord", b =>
 159                {
 160                    b.Property<Guid>("Id").HasColumnType("TEXT");
 161                    b.Property<string>("ActorId").IsRequired().HasMaxLength(256).HasColumnType("TEXT");
 162                    b.Property<string>("ActorType").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 163                    b.Property<string>("Application").IsRequired().HasMaxLength(200).HasColumnType("TEXT");
 164                    b.Property<string>("ConcurrencyStamp").IsConcurrencyToken().IsRequired().HasMaxLength(64).HasColumnT
 165                    b.Property<string>("CorrelationId").HasMaxLength(128).HasColumnType("TEXT");
 166                    b.Property<string>("CurrentValues").IsRequired().HasColumnType("TEXT");
 167                    b.Property<string>("DecisionAuditRecordId").HasMaxLength(128).HasColumnType("TEXT");
 168                    b.Property<string>("Entity").IsRequired().HasMaxLength(200).HasColumnType("TEXT");
 169                    b.Property<string>("ExecutionAttemptId").HasMaxLength(128).HasColumnType("TEXT");
 170                    b.Property<string>("KeyValues").IsRequired().HasColumnType("TEXT");
 171                    b.Property<string>("ModifiedBy").IsRequired().HasMaxLength(200).HasColumnType("TEXT");
 172                    b.Property<DateTime>("ModifiedOnUtc").HasPrecision(3).HasColumnType("TEXT");
 173                    b.Property<string>("MutationBatchId").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 174                    b.Property<string>("OperationExecutionId").HasMaxLength(128).HasColumnType("TEXT");
 175                    b.Property<string>("OrganizationHash").HasMaxLength(128).HasColumnType("TEXT");
 176                    b.Property<string>("OriginalValues").IsRequired().HasColumnType("TEXT");
 177                    b.Property<string>("SchemaVersion").IsRequired().HasMaxLength(32).HasColumnType("TEXT");
 178                    b.Property<string>("SpanId").HasMaxLength(32).HasColumnType("TEXT");
 179                    b.Property<string>("State").IsRequired().HasMaxLength(100).HasColumnType("TEXT");
 180                    b.Property<string>("TenantHash").HasMaxLength(128).HasColumnType("TEXT");
 181                    b.Property<string>("TraceId").HasMaxLength(64).HasColumnType("TEXT");
 182                    b.HasKey("Id");
 183                    b.HasIndex("CorrelationId");
 184                    b.HasIndex("DecisionAuditRecordId");
 185                    b.HasIndex("MutationBatchId");
 186                    b.HasIndex("OperationExecutionId");
 187                    b.ToTable("AuditRecords", (string)null);
 188                });
 89
 190            modelBuilder.Entity("ProjectTemplate.Infrastructure.Data.Entities.ExternalLoginAccount", b =>
 191                {
 192                    b.Property<Guid>("Id").HasColumnType("TEXT");
 193                    b.Property<string>("ConcurrencyStamp").IsConcurrencyToken().IsRequired().HasMaxLength(64).HasColumnT
 194                    b.Property<DateTime>("CreatedOnUtc").HasPrecision(3).HasColumnType("TEXT");
 195                    b.Property<string>("DisplayName").HasMaxLength(200).HasColumnType("TEXT");
 196                    b.Property<string>("Email").HasMaxLength(320).HasColumnType("TEXT");
 197                    b.Property<DateTime?>("LastLoginOnUtc").HasPrecision(3).HasColumnType("TEXT");
 198                    b.Property<Guid>("LocalUserId").HasColumnType("TEXT");
 199                    b.Property<string>("NormalizedEmail").HasMaxLength(320).HasColumnType("TEXT");
 1100                    b.Property<string>("NormalizedProviderName").IsRequired().HasMaxLength(100).HasColumnType("TEXT");
 1101                    b.Property<string>("ProviderName").IsRequired().HasMaxLength(100).HasColumnType("TEXT");
 1102                    b.Property<string>("ProviderUserId").IsRequired().HasMaxLength(256).HasColumnType("TEXT");
 1103                    b.Property<DateTime?>("UpdatedOnUtc").HasPrecision(3).HasColumnType("TEXT");
 1104                    b.HasKey("Id");
 1105                    b.HasIndex("Email");
 1106                    b.HasIndex("LocalUserId");
 1107                    b.HasIndex("NormalizedEmail");
 1108                    b.HasIndex("NormalizedProviderName", "ProviderUserId").IsUnique();
 1109                    b.ToTable("ExternalLoginAccounts", (string)null);
 1110                });
 111#pragma warning restore 612, 618
 1112        }
 113    }
 114}