< 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    {
 213        migrationBuilder.CreateTable(
 214            name: "ApplicationAuditCompletionOutbox",
 215            columns: table => new
 216            {
 217                Id = table.Column<Guid>(type: "TEXT", nullable: false),
 218                SchemaVersion = table.Column<string>(type: "TEXT", maxLength: 32, nullable: false),
 219                Destination = table.Column<string>(type: "TEXT", maxLength: 128, nullable: false),
 220                IdempotencyKey = table.Column<string>(type: "TEXT", maxLength: 128, nullable: false),
 221                MutationBatchId = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false),
 222                AuditRecordCount = table.Column<int>(type: "INTEGER", nullable: false),
 223                PersistenceOutcome = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false),
 224                ReceiptCompletedUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: false),
 225                MutationManifestHash = table.Column<string>(type: "TEXT", maxLength: 256, nullable: false),
 226                MutationManifestAlgorithm = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false),
 227                MutationManifestSchemaVersion = table.Column<string>(type: "TEXT", maxLength: 32, nullable: false),
 228                OperationExecutionId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 229                ExecutionAttemptId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 230                DecisionAuditRecordId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 231                CorrelationId = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 232                TraceId = table.Column<string>(type: "TEXT", maxLength: 64, nullable: true),
 233                Status = table.Column<string>(type: "TEXT", maxLength: 32, nullable: false),
 234                RetryCount = table.Column<int>(type: "INTEGER", nullable: false),
 235                CreatedUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: false),
 236                LastAttemptUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: true),
 237                NextAttemptUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: true),
 238                DeliveredUtc = table.Column<DateTime>(type: "TEXT", precision: 3, nullable: true),
 239                LastErrorCode = table.Column<string>(type: "TEXT", maxLength: 128, nullable: true),
 240                LastErrorMessage = table.Column<string>(type: "TEXT", maxLength: 512, nullable: true),
 241                ConcurrencyStamp = table.Column<string>(type: "TEXT", maxLength: 64, nullable: false)
 242            },
 443            constraints: table => table.PrimaryKey("PK_ApplicationAuditCompletionOutbox", x => x.Id));
 44
 245        migrationBuilder.CreateIndex(
 246            name: "IX_ApplicationAuditCompletionOutbox_CreatedUtc",
 247            table: "ApplicationAuditCompletionOutbox",
 248            column: "CreatedUtc");
 49
 250        migrationBuilder.CreateIndex(
 251            name: "IX_ApplicationAuditCompletionOutbox_Destination_MutationBatchId",
 252            table: "ApplicationAuditCompletionOutbox",
 253            columns: ["Destination", "MutationBatchId"],
 254            unique: true);
 55
 256        migrationBuilder.CreateIndex(
 257            name: "IX_ApplicationAuditCompletionOutbox_IdempotencyKey",
 258            table: "ApplicationAuditCompletionOutbox",
 259            column: "IdempotencyKey",
 260            unique: true);
 61
 262        migrationBuilder.CreateIndex(
 263            name: "IX_ApplicationAuditCompletionOutbox_Status_NextAttemptUtc",
 264            table: "ApplicationAuditCompletionOutbox",
 265            columns: ["Status", "NextAttemptUtc"]);
 266    }
 67
 68    /// <inheritdoc />
 69    protected override void Down(MigrationBuilder migrationBuilder)
 70    {
 271        migrationBuilder.DropTable(name: "ApplicationAuditCompletionOutbox");
 272    }
 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
 221            modelBuilder.HasAnnotation("ProductVersion", "10.0.8");
 22
 223            modelBuilder.Entity("ProjectTemplate.Infrastructure.Data.Entities.ApplicationAuditCompletionOutboxEntry", b 
 224                {
 225                    b.Property<Guid>("Id").HasColumnType("TEXT");
 226                    b.Property<int>("AuditRecordCount").HasColumnType("INTEGER");
 227                    b.Property<string>("ConcurrencyStamp").IsConcurrencyToken().IsRequired().HasMaxLength(64).HasColumnT
 228                    b.Property<string>("CorrelationId").HasMaxLength(128).HasColumnType("TEXT");
 229                    b.Property<DateTime>("CreatedUtc").HasPrecision(3).HasColumnType("TEXT");
 230                    b.Property<string>("DecisionAuditRecordId").HasMaxLength(128).HasColumnType("TEXT");
 231                    b.Property<DateTime?>("DeliveredUtc").HasPrecision(3).HasColumnType("TEXT");
 232                    b.Property<string>("Destination").IsRequired().HasMaxLength(128).HasColumnType("TEXT");
 233                    b.Property<string>("ExecutionAttemptId").HasMaxLength(128).HasColumnType("TEXT");
 234                    b.Property<string>("IdempotencyKey").IsRequired().HasMaxLength(128).HasColumnType("TEXT");
 235                    b.Property<DateTime?>("LastAttemptUtc").HasPrecision(3).HasColumnType("TEXT");
 236                    b.Property<string>("LastErrorCode").HasMaxLength(128).HasColumnType("TEXT");
 237                    b.Property<string>("LastErrorMessage").HasMaxLength(512).HasColumnType("TEXT");
 238                    b.Property<string>("MutationBatchId").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 239                    b.Property<string>("MutationManifestAlgorithm").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 240                    b.Property<string>("MutationManifestHash").IsRequired().HasMaxLength(256).HasColumnType("TEXT");
 241                    b.Property<string>("MutationManifestSchemaVersion").IsRequired().HasMaxLength(32).HasColumnType("TEX
 242                    b.Property<DateTime?>("NextAttemptUtc").HasPrecision(3).HasColumnType("TEXT");
 243                    b.Property<string>("OperationExecutionId").HasMaxLength(128).HasColumnType("TEXT");
 244                    b.Property<string>("PersistenceOutcome").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 245                    b.Property<DateTime>("ReceiptCompletedUtc").HasPrecision(3).HasColumnType("TEXT");
 246                    b.Property<int>("RetryCount").HasColumnType("INTEGER");
 247                    b.Property<string>("SchemaVersion").IsRequired().HasMaxLength(32).HasColumnType("TEXT");
 248                    b.Property<string>("Status").IsRequired().HasMaxLength(32).HasColumnType("TEXT");
 249                    b.Property<string>("TraceId").HasMaxLength(64).HasColumnType("TEXT");
 250                    b.HasKey("Id");
 251                    b.HasIndex("CreatedUtc");
 252                    b.HasIndex("IdempotencyKey").IsUnique();
 253                    b.HasIndex("Destination", "MutationBatchId").IsUnique();
 254                    b.HasIndex("Status", "NextAttemptUtc");
 255                    b.ToTable("ApplicationAuditCompletionOutbox", (string)null);
 456                });
 57
 258            modelBuilder.Entity("ProjectTemplate.Infrastructure.Data.Entities.AuditRecord", b =>
 259                {
 260                    b.Property<Guid>("Id").HasColumnType("TEXT");
 261                    b.Property<string>("ActorId").IsRequired().HasMaxLength(256).HasColumnType("TEXT");
 262                    b.Property<string>("ActorType").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 263                    b.Property<string>("Application").IsRequired().HasMaxLength(200).HasColumnType("TEXT");
 264                    b.Property<string>("ConcurrencyStamp").IsConcurrencyToken().IsRequired().HasMaxLength(64).HasColumnT
 265                    b.Property<string>("CorrelationId").HasMaxLength(128).HasColumnType("TEXT");
 266                    b.Property<string>("CurrentValues").IsRequired().HasColumnType("TEXT");
 267                    b.Property<string>("DecisionAuditRecordId").HasMaxLength(128).HasColumnType("TEXT");
 268                    b.Property<string>("Entity").IsRequired().HasMaxLength(200).HasColumnType("TEXT");
 269                    b.Property<string>("ExecutionAttemptId").HasMaxLength(128).HasColumnType("TEXT");
 270                    b.Property<string>("KeyValues").IsRequired().HasColumnType("TEXT");
 271                    b.Property<string>("ModifiedBy").IsRequired().HasMaxLength(200).HasColumnType("TEXT");
 272                    b.Property<DateTime>("ModifiedOnUtc").HasPrecision(3).HasColumnType("TEXT");
 273                    b.Property<string>("MutationBatchId").IsRequired().HasMaxLength(64).HasColumnType("TEXT");
 274                    b.Property<string>("OperationExecutionId").HasMaxLength(128).HasColumnType("TEXT");
 275                    b.Property<string>("OrganizationHash").HasMaxLength(128).HasColumnType("TEXT");
 276                    b.Property<string>("OriginalValues").IsRequired().HasColumnType("TEXT");
 277                    b.Property<string>("SchemaVersion").IsRequired().HasMaxLength(32).HasColumnType("TEXT");
 278                    b.Property<string>("SpanId").HasMaxLength(32).HasColumnType("TEXT");
 279                    b.Property<string>("State").IsRequired().HasMaxLength(100).HasColumnType("TEXT");
 280                    b.Property<string>("TenantHash").HasMaxLength(128).HasColumnType("TEXT");
 281                    b.Property<string>("TraceId").HasMaxLength(64).HasColumnType("TEXT");
 282                    b.HasKey("Id");
 283                    b.HasIndex("CorrelationId");
 284                    b.HasIndex("DecisionAuditRecordId");
 285                    b.HasIndex("MutationBatchId");
 286                    b.HasIndex("OperationExecutionId");
 287                    b.ToTable("AuditRecords", (string)null);
 488                });
 89
 290            modelBuilder.Entity("ProjectTemplate.Infrastructure.Data.Entities.ExternalLoginAccount", b =>
 291                {
 292                    b.Property<Guid>("Id").HasColumnType("TEXT");
 293                    b.Property<string>("ConcurrencyStamp").IsConcurrencyToken().IsRequired().HasMaxLength(64).HasColumnT
 294                    b.Property<DateTime>("CreatedOnUtc").HasPrecision(3).HasColumnType("TEXT");
 295                    b.Property<string>("DisplayName").HasMaxLength(200).HasColumnType("TEXT");
 296                    b.Property<string>("Email").HasMaxLength(320).HasColumnType("TEXT");
 297                    b.Property<DateTime?>("LastLoginOnUtc").HasPrecision(3).HasColumnType("TEXT");
 298                    b.Property<Guid>("LocalUserId").HasColumnType("TEXT");
 299                    b.Property<string>("NormalizedEmail").HasMaxLength(320).HasColumnType("TEXT");
 2100                    b.Property<string>("NormalizedProviderName").IsRequired().HasMaxLength(100).HasColumnType("TEXT");
 2101                    b.Property<string>("ProviderName").IsRequired().HasMaxLength(100).HasColumnType("TEXT");
 2102                    b.Property<string>("ProviderUserId").IsRequired().HasMaxLength(256).HasColumnType("TEXT");
 2103                    b.Property<DateTime?>("UpdatedOnUtc").HasPrecision(3).HasColumnType("TEXT");
 2104                    b.HasKey("Id");
 2105                    b.HasIndex("Email");
 2106                    b.HasIndex("LocalUserId");
 2107                    b.HasIndex("NormalizedEmail");
 2108                    b.HasIndex("NormalizedProviderName", "ProviderUserId").IsUnique();
 2109                    b.ToTable("ExternalLoginAccounts", (string)null);
 4110                });
 111#pragma warning restore 612, 618
 2112        }
 113    }
 114}