Update to allow for seeding of database
This commit is contained in:
@@ -170,9 +170,15 @@ try
|
||||
builder.Services.Configure<SimulationOptions>(
|
||||
builder.Configuration.GetSection(SimulationOptions.Section));
|
||||
|
||||
builder.Services.Configure<SeedingOptions>(
|
||||
builder.Configuration.GetSection(SeedingOptions.Section));
|
||||
|
||||
var simulationOptions = builder.Configuration
|
||||
.GetSection(SimulationOptions.Section).Get<SimulationOptions>() ?? new();
|
||||
|
||||
var seedingOptions = builder.Configuration.GetSection(SeedingOptions.Section).Get<SeedingOptions>()
|
||||
?? new SeedingOptions();
|
||||
|
||||
if (simulationOptions.Enabled)
|
||||
{
|
||||
builder.Services.AddHttpClient("simulation-loopback", c =>
|
||||
@@ -358,8 +364,8 @@ try
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// One-shot CLI verbs exit before hosting. Skip demo seeding for them so
|
||||
// create-admin / register-gateway never race the demo UserSeeder.
|
||||
// One-shot CLI verbs exit before hosting. Skip seeding for them so
|
||||
// create-admin / register-gateway never race auto-bootstrap.
|
||||
var isCliCommand = args.Contains("encrypt-phi")
|
||||
|| args.Contains("create-admin")
|
||||
|| args.Contains("register-gateway");
|
||||
@@ -375,10 +381,24 @@ try
|
||||
// must never be created in production. Seeding:EnableDemoData defaults to
|
||||
// true so local development and the existing verification scripts are
|
||||
// unaffected; appsettings.Production.json sets it to false.
|
||||
var enableDemoData = builder.Configuration.GetValue("Seeding:EnableDemoData", true)
|
||||
var enableDemoData = seedingOptions.EnableDemoData
|
||||
&& !app.Environment.IsEnvironment("Testing")
|
||||
&& !isCliCommand;
|
||||
|
||||
var runBootstrap = !app.Environment.IsEnvironment("Testing") && !isCliCommand;
|
||||
|
||||
if (runBootstrap)
|
||||
{
|
||||
using var scope = app.Services.CreateScope();
|
||||
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
|
||||
var redis = scope.ServiceProvider.GetRequiredService<IConnectionMultiplexer>();
|
||||
var bootstrapLogger = scope.ServiceProvider
|
||||
.GetRequiredService<ILoggerFactory>()
|
||||
.CreateLogger("BootstrapSeeder");
|
||||
// Always: default thresholds (+ optional bootstrap users / site+gateway from config).
|
||||
await BootstrapSeeder.SeedAsync(db, redis, seedingOptions, bootstrapLogger);
|
||||
}
|
||||
|
||||
if (enableDemoData)
|
||||
{
|
||||
using var scope = app.Services.CreateScope();
|
||||
|
||||
Reference in New Issue
Block a user