82 lines
4.5 KiB
C#
82 lines
4.5 KiB
C#
using BMA.EHR.Application.Common.Interfaces;
|
|
using BMA.EHR.Application.Repositories.MessageQueue;
|
|
using BMA.EHR.Domain.Models.Discipline;
|
|
using BMA.EHR.Domain.Models.Retirement;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace BMA.EHR.Application.Repositories
|
|
{
|
|
public class DisciplineRepository : GenericRepository<Guid, RetirementPeriod>
|
|
{
|
|
private readonly IApplicationDBContext _dbContext;
|
|
private readonly IDisciplineDbContext _dbDisContext;
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
private readonly NotificationRepository _repositoryNoti;
|
|
public DisciplineRepository(IApplicationDBContext dbContext,
|
|
IDisciplineDbContext dbDisContext,
|
|
NotificationRepository repositoryNoti,
|
|
IHttpContextAccessor httpContextAccessor) : base(dbContext, httpContextAccessor)
|
|
{
|
|
_dbContext = dbContext;
|
|
_dbDisContext = dbDisContext;
|
|
_httpContextAccessor = httpContextAccessor;
|
|
_repositoryNoti = repositoryNoti;
|
|
}
|
|
|
|
//เรื่องร้องเรียน
|
|
public async Task NotifyDisciplineComplaint()
|
|
{
|
|
var cronjobNotis = await _dbDisContext.Set<DisciplineComplaint>()
|
|
.Where(x => x.DateNotification != null)
|
|
.Where(x => x.DateNotification.Value.Date == DateTime.Now.Date)
|
|
.AsQueryable()
|
|
.ToListAsync();
|
|
foreach (var cronjobNoti in cronjobNotis)
|
|
{
|
|
await _repositoryNoti.PushNotificationAsync(
|
|
Guid.Parse("08dbca3a-8b6a-4a4e-8b23-1f62e4f30ef6"),
|
|
$"แจ้งเตือนบันทึกข้อมูลร้องเรียนก่อนวันสิ้นสุดเรื่อง {cronjobNoti.Title}",
|
|
$"แจ้งเตือนบันทึกข้อมูลร้องเรียนก่อนวันสิ้นสุดเรื่อง {cronjobNoti.Title}"
|
|
);
|
|
}
|
|
await _dbContext.SaveChangesAsync();
|
|
}
|
|
|
|
//เรื่องสืบสวน
|
|
public async Task NotifyDisciplineInvestigate()
|
|
{
|
|
var cronjobNotis = await _dbDisContext.Set<DisciplineInvestigate>()
|
|
.Where(x => x.InvestigationDateEnd != null && x.InvestigationDateEnd.Value.Date.AddDays(-7) == DateTime.Now.Date)
|
|
.AsQueryable()
|
|
.ToListAsync();
|
|
foreach (var cronjobNoti in cronjobNotis)
|
|
{
|
|
await _repositoryNoti.PushNotificationAsync(
|
|
Guid.Parse("08dbca3a-8b6a-4a4e-8b23-1f62e4f30ef6"),
|
|
$"แจ้งเตือนบันทึกข้อมูลสืบสวนก่อนวันสิ้นสุดเรื่อง {cronjobNoti.Title}",
|
|
$"แจ้งเตือนบันทึกข้อมูลสืบสวนก่อนวันสิ้นสุดเรื่อง {cronjobNoti.Title}"
|
|
);
|
|
}
|
|
await _dbContext.SaveChangesAsync();
|
|
}
|
|
|
|
//เรื่องสอบสวน
|
|
public async Task NotifyDisciplineDisciplinary()
|
|
{
|
|
var cronjobNotis = await _dbDisContext.Set<DisciplineDisciplinary>()
|
|
.Where(x => x.DisciplinaryDateEnd != null && x.DisciplinaryDateEnd.Value.Date.AddDays(-7) == DateTime.Now.Date)
|
|
.AsQueryable()
|
|
.ToListAsync();
|
|
foreach (var cronjobNoti in cronjobNotis)
|
|
{
|
|
await _repositoryNoti.PushNotificationAsync(
|
|
Guid.Parse("08dbca3a-8b6a-4a4e-8b23-1f62e4f30ef6"),
|
|
$"แจ้งเตือนบันทึกข้อมูลสอบสวนก่อนวันสิ้นสุดเรื่อง {cronjobNoti.Title}",
|
|
$"แจ้งเตือนบันทึกข้อมูลสอบสวนก่อนวันสิ้นสุดเรื่อง {cronjobNoti.Title}"
|
|
);
|
|
}
|
|
await _dbContext.SaveChangesAsync();
|
|
}
|
|
}
|
|
}
|