diff --git a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs index dbb553ee..211a651a 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs @@ -286,6 +286,14 @@ namespace BMA.EHR.Insignia.Service.Controllers #endregion + [HttpGet("test")] + [AllowAnonymous] + public async Task> Test() + { + await _insigniaReportRepository.CalInsigniaRequestBkkByType("officer"); + return Success(); + } + #region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ " /// diff --git a/BMA.EHR.Insignia/Program.cs b/BMA.EHR.Insignia/Program.cs index cd3684fe..ea04682f 100644 --- a/BMA.EHR.Insignia/Program.cs +++ b/BMA.EHR.Insignia/Program.cs @@ -184,10 +184,26 @@ var app = builder.Build(); { manager.AddOrUpdate("แจ้งเตือนรอบเครื่องราชฯ", Job.FromExpression(x => x.NotifyInsignia()), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local); manager.AddOrUpdate("ล็อกข้อมูลรอบเครื่องราชฯ", Job.FromExpression(x => x.LockInsignia()), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local); - manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ", Job.FromExpression(x => x.CalInsigniaRequestBkkByType("officer")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local); - manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ Employee", Job.FromExpression(x => x.CalInsigniaRequestBkkByType("employee")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local); + //manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ", Job.FromExpression(x => x.CalInsigniaRequestBkkByType("officer")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local); + //manager.AddOrUpdate("คำนวนผู้ได้รับเครื่องราชฯ Employee", Job.FromExpression(x => x.CalInsigniaRequestBkkByType("employee")), Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), TimeZoneInfo.Local); } + RecurringJob.AddOrUpdate( + "คำนวนผู้ได้รับเครื่องราชฯ", + x => x.CalInsigniaRequestBkkByType("officer"), + Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]), + Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), + TimeZoneInfo.Local + ); + + RecurringJob.AddOrUpdate( + "คำนวนผู้ได้รับเครื่องราชฯ Employee", + x => x.CalInsigniaRequestBkkByType("employee"), + Cron.Daily(Int32.Parse(builder.Configuration["KeycloakCron:Hour"]) + 2, + Int32.Parse(builder.Configuration["KeycloakCron:Minute"])), + TimeZoneInfo.Local + ); + // apply migrations await using var scope = app.Services.CreateAsyncScope(); await using var db = scope.ServiceProvider.GetRequiredService(); @@ -196,9 +212,23 @@ var app = builder.Build(); //var rabbitMQConsumer = app.Services.GetRequiredService(); //rabbitMQConsumer.StartReceiving(); + + app.Run(); } +// เพิ่ม helper method +static async Task ExecuteJobWithScope(string type) +{ + // ใช้ HttpContext current service provider + var scopeFactory = new HttpContextAccessor().HttpContext? + .RequestServices.GetRequiredService(); + + using var scope = scopeFactory.CreateScope(); + var repo = scope.ServiceProvider.GetRequiredService(); + await repo.CalInsigniaRequestBkkByType(type); +} + void ConfigureLogs() { var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");