noti probation

This commit is contained in:
Kittapath 2023-09-08 15:23:41 +07:00
parent ffac27ef76
commit 3a334387bd
20 changed files with 33093 additions and 91 deletions

View file

@ -7,7 +7,9 @@ using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using System.Configuration;
using System.Net.Http.Headers;
using BMA.EHR.Application.Responses;
using BMA.EHR.Application.Responses;
using BMA.EHR.Application.Repositories.MessageQueue;
using BMA.EHR.Domain.Models.Probation;
namespace BMA.EHR.Application.Repositories.Reports
{
@ -17,22 +19,25 @@ namespace BMA.EHR.Application.Repositories.Reports
private readonly IApplicationDBContext _dbContext;
private readonly IWebHostEnvironment _hostingEnvironment;
private readonly NotificationRepository _repositoryNoti;
#endregion
#region " Constructor and Destructor "
public ProbationReportRepository(IApplicationDBContext dbContext, IWebHostEnvironment hostEnvironment)
public ProbationReportRepository(IApplicationDBContext dbContext,
NotificationRepository repositoryNoti,
IWebHostEnvironment hostEnvironment)
{
_dbContext = dbContext;
_hostingEnvironment = hostEnvironment;
_repositoryNoti = repositoryNoti;
}
#endregion
#region " Methods "
#region
public async Task<object> GetProbationAssignAsync(Guid assign_id, string token)
{
@ -46,18 +51,18 @@ namespace BMA.EHR.Application.Repositories.Reports
var result = await res.Content.ReadAsStringAsync();
probation_assign = JsonConvert.DeserializeObject<ProbationAssignResponse>(result);
if(probation_assign.data != null)
if (probation_assign.data != null)
{
//Profile ผู้ทดลองงาน
string[] date_start_parts = string.IsNullOrEmpty(probation_assign.data.assign.date_start) ? null : probation_assign.data.assign.date_start.Split('-');
string[] date_finish_parts = string.IsNullOrEmpty(probation_assign.data.assign.date_finish) ? null : probation_assign.data.assign.date_finish.Split('-');
//Mentors
string[] date_mentor1_parts = probation_assign.data.mentors.Count > 0 ? probation_assign.data.mentors[0].dated.Split('-') : null ;
string[] date_mentor1_parts = probation_assign.data.mentors.Count > 0 ? probation_assign.data.mentors[0].dated.Split('-') : null;
string[] date_mentor2_parts = probation_assign.data.mentors.Count > 1 ? probation_assign.data.mentors[1].dated.Split('-') : null;
//Commander
string[] date_commander_parts = string.IsNullOrEmpty(probation_assign.data.commander.dated) ? null : probation_assign.data.commander.dated.Split('-');
return new
return new
{
Name = string.IsNullOrEmpty(probation_assign.data.profile.name) ? string.Empty : probation_assign.data.profile.name,
Position = string.IsNullOrEmpty(probation_assign.data.profile.Position) ? string.Empty : probation_assign.data.profile.Position,
@ -72,7 +77,7 @@ namespace BMA.EHR.Application.Repositories.Reports
NameMentor2 = string.IsNullOrEmpty(probation_assign.data.mentors[1].name) ? string.Empty : probation_assign.data.mentors[1].name,
DateMentor2 = string.IsNullOrEmpty(date_mentor2_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_mentor2_parts[0], date_mentor2_parts[1], date_mentor2_parts[2]),
PositionMentor2 = string.IsNullOrEmpty(probation_assign.data.mentors[1].Position) ? string.Empty : probation_assign.data.mentors[1].Position,
NameCommander = string.IsNullOrEmpty(probation_assign.data.commander.name) ? string.Empty : probation_assign.data.commander.name,
NameCommander = string.IsNullOrEmpty(probation_assign.data.commander.name) ? string.Empty : probation_assign.data.commander.name,
DateCommander = string.IsNullOrEmpty(date_commander_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_commander_parts[0], date_commander_parts[1], date_commander_parts[2]),
PositionCommander = string.IsNullOrEmpty(probation_assign.data.commander.Position) ? string.Empty : probation_assign.data.commander.Position,
Jobs = probation_assign.data.jobs.ToList(),
@ -118,14 +123,14 @@ namespace BMA.EHR.Application.Repositories.Reports
string[] achievement_improve_desc = new string[evaluate_record.data.evaluate.Count];
string[] behavior_strength_desc = new string[evaluate_record.data.evaluate.Count];
string[] behavior_improve_desc = new string[evaluate_record.data.evaluate.Count];
foreach (var evaluate in evaluate_record.data.evaluate)
foreach (var evaluate in evaluate_record.data.evaluate)
{
int inx = 0;
evaluate.no = !string.IsNullOrEmpty(evaluate.no) ? evaluate.no.ToThaiNumber() : null;
date_start_round_parts = !string.IsNullOrEmpty(evaluate.date_start) ? evaluate.date_start.Split('-') : null;
evaluate.date_start = ConvertDateMonthYear(date_start_round_parts[0], date_start_round_parts[1], date_start_round_parts[2]);
date_finish_round_parts = !string.IsNullOrEmpty(evaluate.date_finish) ? evaluate.date_finish.Split('-') : null;
evaluate.date_finish = ConvertDateMonthYear(date_finish_round_parts[0], date_finish_round_parts[1], date_finish_round_parts[2]);
evaluate.date_finish = ConvertDateMonthYear(date_finish_round_parts[0], date_finish_round_parts[1], date_finish_round_parts[2]);
achievement_strength_desc[inx] = !string.IsNullOrEmpty(evaluate.achievement_strength_desc) ? evaluate.achievement_strength_desc : string.Empty;
achievement_improve_desc[inx] = !string.IsNullOrEmpty(evaluate.achievement_improve_desc) ? evaluate.achievement_improve_desc : string.Empty;
behavior_strength_desc[inx] = !string.IsNullOrEmpty(evaluate.behavior_strength_desc) ? evaluate.behavior_strength_desc : string.Empty;
@ -195,7 +200,8 @@ namespace BMA.EHR.Application.Repositories.Reports
string[] evaluate_assessor_dated = evaluate_assign.data.evaluate.commander_dated.Split('-');
return new {
return new
{
No = evaluate_assign.data.evaluate.no,
EvaluateDateStart = ConvertDateMonthYear(evaluate_date_start_parts[0], evaluate_date_start_parts[1], evaluate_date_start_parts[2]),
EvaluateDateFinish = ConvertDateMonthYear(evaluate_date_finish_parts[0], evaluate_date_finish_parts[1], evaluate_date_finish_parts[2]),
@ -207,7 +213,7 @@ namespace BMA.EHR.Application.Repositories.Reports
DateStart = ConvertDateMonthYear(date_start_parts[0], date_start_parts[1], date_start_parts[2]),
DateFinish = ConvertDateMonthYear(date_finish_parts[0], date_finish_parts[1], date_finish_parts[2]),
//table1 ผลสัมฤทธิ์
KnowledgeLevel1 = evaluate_assign.data.evaluate.knowledge_level.ToString() == "1" ? "/": string.Empty,
KnowledgeLevel1 = evaluate_assign.data.evaluate.knowledge_level.ToString() == "1" ? "/" : string.Empty,
KnowledgeLevel2 = evaluate_assign.data.evaluate.knowledge_level.ToString() == "2" ? "/" : string.Empty,
KnowledgeLevel3 = evaluate_assign.data.evaluate.knowledge_level.ToString() == "3" ? "/" : string.Empty,
KnowledgeLevel4 = evaluate_assign.data.evaluate.knowledge_level.ToString() == "4" ? "/" : string.Empty,
@ -451,7 +457,7 @@ namespace BMA.EHR.Application.Repositories.Reports
string[] evaluate_date_finish_parts = evaluate_assign.data.evaluate.date_finish.Split('-');
DateTime currentDate = DateTime.Now;
string[] date_curent_parts = currentDate.ToString("yyyy-MM-dd").Split('-');
if(string.IsNullOrEmpty(evaluate_assign.data.chairman.Position))
if (string.IsNullOrEmpty(evaluate_assign.data.chairman.Position))
{
evaluate_assign.data.chairman.Position = string.Empty;
}
@ -490,12 +496,34 @@ namespace BMA.EHR.Application.Repositories.Reports
{
year = year.ToInteger().ToThaiYear().ToString().ToThaiNumber();
month = month.ToInteger().ToThaiMonth();
date = date.StartsWith("0") ? date.Substring(1).ToThaiNumber(): date.ToThaiNumber();
date = date.StartsWith("0") ? date.Substring(1).ToThaiNumber() : date.ToThaiNumber();
return $"วันที่ {date} เดือน {month} พ.ศ. {year}";
}
#endregion
#endregion
public async Task NotifyProbation()
{
var cronjobNotis = await _dbContext.Set<CronjobNotiProbation>()
.AsQueryable()
.ToListAsync();
foreach (var cronjobNoti in cronjobNotis)
{
if (cronjobNoti.ReceiveDate.Date == DateTime.Now.Date && cronjobNoti.IsSendNoti == false)
{
await _repositoryNoti.PushNotificationAsync(
cronjobNoti.ReceiverUserId,
cronjobNoti.Subject,
cronjobNoti.Body,
cronjobNoti.Payload,
cronjobNoti.IsSendInbox,
cronjobNoti.IsSendMail
);
cronjobNoti.IsSendNoti = true;
}
}
await _dbContext.SaveChangesAsync();
}
}
}