using System; using System.IO; using gehGassi.Core.Interfaces; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; namespace gehGassi.Persistence { public class DbContextFactory : IDesignTimeDbContextFactory { public SqlDbContext CreateDbContext(string[] args) { var environmentName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{environmentName}.json", optional: true); var configuration = builder.Build(); var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlServer(configuration.GetConnectionString("SqlDbContext"), x => x.UseNetTopologySuite()); var option = Options.Create(new AuditOptions() { IsEnabled = false }); return new SqlDbContext(optionsBuilder.Options, option); } } }