< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Persistence.Factories.NLightningContextFactory
Assembly: NLightning.Infrastructure.Persistence
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Persistence/Factories/NLightningContextFactory.cs
Tag: 36_15743069263
Line coverage
0%
Covered lines: 0
Uncovered lines: 26
Coverable lines: 26
Total lines: 54
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CreateDbContext(...)0%4260%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Persistence/Factories/NLightningContextFactory.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore;
 2using Microsoft.EntityFrameworkCore.Design;
 3
 4namespace NLightning.Infrastructure.Persistence.Factories;
 5
 6using Contexts;
 7using Enums;
 8using Providers;
 9
 10/// <summary>
 11/// This is used for dotnet ef CLI to set up connection for migration stuff
 12/// </summary>
 13public class NLightningContextFactory : IDesignTimeDbContextFactory<NLightningDbContext>
 14{
 15    public NLightningDbContext CreateDbContext(string[] args)
 16    {
 017        var optionsBuilder = new DbContextOptionsBuilder<NLightningDbContext>();
 18
 019        var postgresString = Environment.GetEnvironmentVariable("NLIGHTNING_POSTGRES");
 020        if (postgresString != null)
 21        {
 022            optionsBuilder.UseNpgsql(postgresString, x =>
 023                           {
 024                               x.MigrationsAssembly("NLightning.Infrastructure.Persistence.Postgres");
 025                           })
 026                          .EnableSensitiveDataLogging()
 027                          .UseSnakeCaseNamingConvention();
 028            return new NLightningDbContext(optionsBuilder.Options, new DatabaseTypeProvider(DatabaseType.PostgreSql));
 29        }
 30
 031        var sqlite = Environment.GetEnvironmentVariable("NLIGHTNING_SQLITE");
 032        if (sqlite != null)
 33        {
 034            optionsBuilder.UseSqlite(sqlite, x =>
 035            {
 036                x.MigrationsAssembly("NLightning.Infrastructure.Persistence.Sqlite");
 037            });
 038            return new NLightningDbContext(optionsBuilder.Options, new DatabaseTypeProvider(DatabaseType.Sqlite));
 39        }
 40
 041        var sqlServer = Environment.GetEnvironmentVariable("NLIGHTNING_SQLSERVER");
 042        if (sqlServer != null)
 43        {
 044            optionsBuilder.UseSqlServer(sqlServer, x =>
 045            {
 046                x.MigrationsAssembly("NLightning.Infrastructure.Persistence.SqlServer");
 047            });
 048            return new NLightningDbContext(optionsBuilder.Options, new DatabaseTypeProvider(DatabaseType.MicrosoftSql));
 49        }
 50
 051        throw new Exception(
 052            "Must set NLIGHTNING_POSTGRES or NLIGHTNING_SQLITE or NLIGHTNING_SQLSERVER env for generation.");
 53    }
 54}