< Summary - Syki

Information
Class: Syki.Back.Extensions.SykiDbContextExtensions
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Extensions/SykiDbContextExtensions.cs
Tag: 56_26538939494
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 28
Line coverage: 100%
Branch coverage
75%
Covered branches: 6
Total branches: 8
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
HasMissingMigration(...)75%88100%

File(s)

/home/runner/work/syki/syki/Back/Extensions/SykiDbContextExtensions.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore.Metadata;
 2using Microsoft.EntityFrameworkCore.Migrations;
 3using Microsoft.EntityFrameworkCore.Infrastructure;
 4
 5namespace Syki.Back.Extensions;
 6
 7public static class SykiDbContextExtensions
 8{
 9    public static bool HasMissingMigration(this SykiDbContext context)
 10    {
 211        var modelDiffer = context.GetService<IMigrationsModelDiffer>();
 12
 213        var migrationsAssembly = context.GetService<IMigrationsAssembly>();
 214        var modelInitializer = context.GetService<IModelRuntimeInitializer>();
 15
 216        var snapshotModel = migrationsAssembly.ModelSnapshot?.Model;
 217        if (snapshotModel is IMutableModel mutableModel)
 218            snapshotModel = mutableModel.FinalizeModel();
 219        if (snapshotModel is not null)
 220            snapshotModel = modelInitializer.Initialize(snapshotModel);
 21
 222        var designTimeModel = context.GetService<IDesignTimeModel>();
 23
 224        return modelDiffer.HasDifferences(
 225            snapshotModel?.GetRelationalModel(),
 226            designTimeModel.Model.GetRelationalModel());
 27    }
 28}