58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
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;
|
|
|
|
namespace Dlhis.Middle;
|
|
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
KurisuHost.Run<Startup>(args);
|
|
}
|
|
}
|
|
|
|
public class Startup : DefaultStartup
|
|
{
|
|
public Startup(IConfiguration configuration) : base(configuration)
|
|
{
|
|
IdentityModelEventSource.ShowPII = true;
|
|
}
|
|
|
|
public override void ConfigureServices(IServiceCollection services)
|
|
{
|
|
base.ConfigureServices(services);
|
|
|
|
services.AddHostedService<BalanceRecordUploadBackgroundService>();
|
|
services.AddHostedService<HealthCheckBackgroundService>();
|
|
|
|
services.AddRemoteCall(App.ActiveTypes);
|
|
services.AddMemoryCache();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public override void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
|
{
|
|
base.Configure(app, env);
|
|
|
|
var healthCheckService = app.ApplicationServices.GetService<IHealthCheckService>();
|
|
if (healthCheckService.DoHealthCheckAsync().GetAwaiter().GetResult())
|
|
{
|
|
using var scope = app.ApplicationServices.CreateScope();
|
|
var db = scope.ServiceProvider.GetService<IDbContext>();
|
|
|
|
db.Client.DbMaintenance.CreateDatabase();
|
|
db.Client.CodeFirst.InitTables<LocalBalanceRecordEntity, LocalGainfoEntity, LocalGainfoMealEntity, LocalBusinessPlaceEntity>();
|
|
db.Client.CodeFirst.InitTables<LocalBusinessShiftEntity, LocalDeviceRegistryEntity, LocalDeviceEntity, LocalBusinessPlaceShiftRelationshipEntity, LocalBusinessShiftMealRelationshipEntity>();
|
|
db.Client.CodeFirst.InitTables<LocalCanteenSettingEntity, LocalDepartmentEntity>();
|
|
|
|
var factories = scope.ServiceProvider.GetService<ISettingService>().GetFactories();
|
|
var ds = scope.ServiceProvider.GetService<IDataDownloadService>();
|
|
ds.InitAsync(factories).Wait();
|
|
}
|
|
}
|
|
} |