diff --git a/Endpoint/Program.cs b/Endpoint/Program.cs index 340478c..0938434 100644 --- a/Endpoint/Program.cs +++ b/Endpoint/Program.cs @@ -12,6 +12,7 @@ using Mirea.Api.Endpoint.Common.Interfaces; using Mirea.Api.Endpoint.Common.Services; using Mirea.Api.Endpoint.Configuration; using Mirea.Api.Endpoint.Configuration.General; +using Mirea.Api.Endpoint.Configuration.General.Validators; using Mirea.Api.Endpoint.Configuration.Swagger; using Mirea.Api.Endpoint.Middleware; using Swashbuckle.AspNetCore.SwaggerGen; @@ -100,8 +101,25 @@ public class Program Console.WriteLine($"{item.Key}:{item.Value}"); #endif - var uber = app.Services.CreateScope().ServiceProvider.GetService(); - DbInitializer.Initialize(uber!); + using (var scope = app.Services.CreateScope()) + { + var serviceProvider = scope.ServiceProvider; + + var optionsSnapshot = serviceProvider.GetRequiredService>(); + var settingsValidator = new SettingsRequiredValidator(optionsSnapshot); + var isDoneConfig = settingsValidator.AreSettingsValid(); + + if (isDoneConfig) + { + var uberDbContext = serviceProvider.GetRequiredService(); + var maintenanceModeService = serviceProvider.GetRequiredService(); + + maintenanceModeService.DisableMaintenanceMode(); + DbInitializer.Initialize(uberDbContext); + + // todo: if admin not found + } + } // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment())