TirsvadCLI Portfolio Library
Loading...
Searching...
No Matches
DbContextOptionsFactory.cs
1using Microsoft.EntityFrameworkCore;
2
4
12public static class DbContextOptionsFactory
13{
40 public static DbContextOptions<ApplicationDbContext> Create(string? connectionString = default)
41 {
42 string? envConnectionString = Environment.GetEnvironmentVariable("TCLI_PORTFOLIO_CONNECTIONSTRINGS__DEFAULTCONNECTION");
43 return !string.IsNullOrEmpty(envConnectionString)
44 ? OptionsBuilder(envConnectionString)
45 : connectionString is not null
46 ? OptionsBuilder(connectionString)
47 : OptionsBuilder("Host=localhost;Port=5434;Database=portfolio;Username=postgres;Password=postgres");
48 throw new NotSupportedException("DbContextOptionsFactory.Create() is only supported in DEBUG builds.");
49 }
50
56 private static DbContextOptions<ApplicationDbContext> OptionsBuilder(string connectionString)
57 {
58 DbContextOptionsBuilder<ApplicationDbContext> optionsBuilder = new();
59 _ = optionsBuilder.UseNpgsql(connectionString);
60 return optionsBuilder.Options;
61 }
62}