diff --git a/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs b/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs index 2c2724d4..256b3006 100644 --- a/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs +++ b/Src/Dlhis.Middle/BackgroundServices/HealthCheckBackgroundService.cs @@ -7,39 +7,17 @@ namespace Dlhis.Middle.BackgroundServices; public class HealthCheckBackgroundService : BackgroundService { private readonly IHealthCheckService _healthCheckService; - private readonly IServiceProvider _serviceProvider; - private bool _init; - public HealthCheckBackgroundService(IHealthCheckService healthCheckService, IServiceProvider serviceProvider) + public HealthCheckBackgroundService(IHealthCheckService healthCheckService) { _healthCheckService = healthCheckService; - _serviceProvider = serviceProvider; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { - if (await _healthCheckService.DoHealthCheckAsync()) - { - if (!_init) - { - using var scope = _serviceProvider.CreateScope(); - - var db = scope.ServiceProvider.GetService(); - - db.Client.DbMaintenance.CreateDatabase(); - db.Client.CodeFirst.InitTables(); - db.Client.CodeFirst.InitTables(); - db.Client.CodeFirst.InitTables(); - - var factories = scope.ServiceProvider.GetService().GetFactories(); - var ds = scope.ServiceProvider.GetService(); - await ds.InitAsync(factories); - } - } - - _init = true; + await _healthCheckService.DoHealthCheckAsync(); } } } \ No newline at end of file diff --git a/Src/Dlhis.Middle/Program.cs b/Src/Dlhis.Middle/Program.cs index f139b0fd..b07548a2 100644 --- a/Src/Dlhis.Middle/Program.cs +++ b/Src/Dlhis.Middle/Program.cs @@ -1,5 +1,8 @@ using Dlhis.Middle.BackgroundServices; +using Dlhis.Middle.Entities; +using Dlhis.Middle.Services; using Kurisu.AspNetCore; +using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Startup; using Microsoft.IdentityModel.Logging; @@ -23,11 +26,33 @@ public class Startup : DefaultStartup public override void ConfigureServices(IServiceCollection services) { base.ConfigureServices(services); - + services.AddHostedService(); services.AddHostedService(); services.AddRemoteCall(App.ActiveTypes); services.AddMemoryCache(); } + + /// + public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + base.Configure(app, env); + + var healthCheckService = app.ApplicationServices.GetService(); + if (healthCheckService.DoHealthCheckAsync().GetAwaiter().GetResult()) + { + using var scope = app.ApplicationServices.CreateScope(); + var db = scope.ServiceProvider.GetService(); + + db.Client.DbMaintenance.CreateDatabase(); + db.Client.CodeFirst.InitTables(); + db.Client.CodeFirst.InitTables(); + db.Client.CodeFirst.InitTables(); + + var factories = scope.ServiceProvider.GetService().GetFactories(); + var ds = scope.ServiceProvider.GetService(); + ds.InitAsync(factories).Wait(); + } + } } \ No newline at end of file