using BMA.EHR.Application.Common.Interfaces; using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Retirement; using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using System.Configuration; using System.Net.Http.Headers; using BMA.EHR.Application.Responses; using BMA.EHR.Application.Repositories.MessageQueue; using BMA.EHR.Domain.Models.Probation; namespace BMA.EHR.Application.Repositories.Reports { public class ProbationReportRepository { #region " Fields " private readonly IApplicationDBContext _dbContext; private readonly IWebHostEnvironment _hostingEnvironment; private readonly NotificationRepository _repositoryNoti; #endregion #region " Constructor and Destructor " public ProbationReportRepository(IApplicationDBContext dbContext, NotificationRepository repositoryNoti, IWebHostEnvironment hostEnvironment) { _dbContext = dbContext; _hostingEnvironment = hostEnvironment; _repositoryNoti = repositoryNoti; } #endregion #region " Methods " #region แบบมอบหมายงาน ฯ public async Task GetProbationAssignAsync(Guid assign_id, string token) { var api_url = $"https://bmaehr.joolsoft.com/nodeapi/v1/assign/probation-assign?assign_id={assign_id}"; ProbationAssignResponse probation_assign; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var req = new HttpRequestMessage(HttpMethod.Get, api_url); var res = await client.SendAsync(req); var result = await res.Content.ReadAsStringAsync(); probation_assign = JsonConvert.DeserializeObject(result); 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_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 { 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, Department = string.IsNullOrEmpty(probation_assign.data.profile.Department) ? string.Empty : probation_assign.data.profile.Department, OrganizationOrganization = string.IsNullOrEmpty(probation_assign.data.profile.OrganizationOrganization) ? string.Empty : probation_assign.data.profile.OrganizationOrganization, Oc = string.IsNullOrEmpty(probation_assign.data.profile.Oc) ? string.Empty : probation_assign.data.profile.Oc, DateStart = string.IsNullOrEmpty(date_start_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_start_parts[0], date_start_parts[1], date_start_parts[2]), DateFinish = string.IsNullOrEmpty(date_finish_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_finish_parts[0], date_finish_parts[1], date_finish_parts[2]), NameMentor1 = string.IsNullOrEmpty(probation_assign.data.mentors[0].name) ? string.Empty : probation_assign.data.mentors[0].name, DateMentor1 = string.IsNullOrEmpty(date_mentor1_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_mentor1_parts[0], date_mentor1_parts[1], date_mentor1_parts[2]), PositionMentor1 = string.IsNullOrEmpty(probation_assign.data.mentors[0].Position) ? string.Empty : probation_assign.data.mentors[0].Position, 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, 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(), Knowledge = probation_assign.data.knowledges.ToList(), Competency = probation_assign.data.competencys.ToList(), Outputs = probation_assign.data.outputs.ToList(), OtherDesc = string.IsNullOrEmpty(probation_assign.data.assign.other_desc) ? string.Empty : probation_assign.data.assign.other_desc, Other4Desc = string.IsNullOrEmpty(probation_assign.data.assign.other4_desc) ? string.Empty : probation_assign.data.assign.other4_desc, Other5No1Desc = string.IsNullOrEmpty(probation_assign.data.assign.other4_desc) ? string.Empty : probation_assign.data.assign.other4_desc, Other5No2Desc = string.IsNullOrEmpty(probation_assign.data.assign.other5_no2_desc) ? string.Empty : probation_assign.data.assign.other5_no2_desc, }; } else { return null; } } } #endregion #region แบบบันทึกผล (ผู้ดูแล, ผู้บังคับบัญชา) public async Task GetEvaluateRecordAsync(Guid assign_id, string token) { var api_url = $"https://bmaehr.joolsoft.com/nodeapi/v1/evaluate-record?assign_id={assign_id}"; EvaluateRecordAssignResponse evaluate_record; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var req = new HttpRequestMessage(HttpMethod.Get, api_url); var res = await client.SendAsync(req); var result = await res.Content.ReadAsStringAsync(); evaluate_record = JsonConvert.DeserializeObject(result); if (evaluate_record.data != null) { string[] date_start_parts = string.IsNullOrEmpty(evaluate_record.data.assign.date_start) ? null : evaluate_record.data.assign.date_start.Split('-'); string[] date_finish_parts = string.IsNullOrEmpty(evaluate_record.data.assign.date_finish) ? null : evaluate_record.data.assign.date_finish.Split('-'); string[] date_start_round_parts; string[] date_finish_round_parts; DateTime currentDate = DateTime.Now; string[] date_curent_parts = currentDate.ToString("yyyy-MM-dd").Split('-'); string[] achievement_strength_desc = new string[evaluate_record.data.evaluate.Count]; 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) { 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]); 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; behavior_improve_desc[inx] = !string.IsNullOrEmpty(evaluate.behavior_improve_desc) ? evaluate.behavior_improve_desc : string.Empty; inx++; } return new { //person or mentor Name = string.IsNullOrEmpty(evaluate_record.data.person.name) ? string.Empty : evaluate_record.data.person.name, Position = string.IsNullOrEmpty(evaluate_record.data.person.Position) ? string.Empty : evaluate_record.data.person.Position, MentorDate = string.IsNullOrEmpty(date_curent_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_curent_parts[0], date_curent_parts[1], date_curent_parts[2]), //experimentee ผู้ดทดลองงาน ExperimenteeName = string.IsNullOrEmpty(evaluate_record.data.experimentee.name) ? string.Empty : evaluate_record.data.experimentee.name, ExperimenteePosition = string.IsNullOrEmpty(evaluate_record.data.experimentee.Position) ? string.Empty : evaluate_record.data.experimentee.Position, Department = string.IsNullOrEmpty(evaluate_record.data.experimentee.Department) ? string.Empty : evaluate_record.data.experimentee.Department, OrganizationOrganization = string.IsNullOrEmpty(evaluate_record.data.experimentee.OrganizationOrganization) ? string.Empty : evaluate_record.data.experimentee.OrganizationOrganization, Oc = string.IsNullOrEmpty(evaluate_record.data.experimentee.Oc) ? string.Empty : evaluate_record.data.experimentee.Oc, DateStart = string.IsNullOrEmpty(date_start_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_start_parts[0], date_start_parts[1], date_start_parts[2]), DateFinish = string.IsNullOrEmpty(date_finish_parts[0]) ? $"วันที่ เดือน พ.ศ." : ConvertDateMonthYear(date_finish_parts[0], date_finish_parts[1], date_finish_parts[2]), Evaluates = evaluate_record.data.evaluate.ToList(), AchievementStrengthDesc1 = string.IsNullOrEmpty(achievement_strength_desc[0]) ? string.Empty : achievement_strength_desc[0].ToString(), AchievementStrengthDesc2 = string.IsNullOrEmpty(achievement_strength_desc[1]) ? string.Empty : achievement_strength_desc[1].ToString(), AchievementStrengthDesc3 = string.IsNullOrEmpty(achievement_strength_desc[2]) ? string.Empty : achievement_strength_desc[2].ToString(), AchievementImproveDesc1 = string.IsNullOrEmpty(achievement_improve_desc[0]) ? string.Empty : achievement_improve_desc[0].ToString(), AchievementImproveDesc2 = string.IsNullOrEmpty(achievement_improve_desc[1]) ? string.Empty : achievement_improve_desc[1].ToString(), AchievementImproveDesc3 = string.IsNullOrEmpty(achievement_improve_desc[2]) ? string.Empty : achievement_improve_desc[2].ToString(), BehaviorStrengthDesc1 = string.IsNullOrEmpty(behavior_strength_desc[0]) ? string.Empty : behavior_strength_desc[0].ToString(), BehaviorStrengthDesc2 = string.IsNullOrEmpty(behavior_strength_desc[1]) ? string.Empty : behavior_strength_desc[1].ToString(), BehaviorStrengthDesc3 = string.IsNullOrEmpty(behavior_strength_desc[2]) ? string.Empty : behavior_strength_desc[2].ToString(), BehaviorImproveDesc1 = string.IsNullOrEmpty(behavior_improve_desc[0]) ? string.Empty : behavior_improve_desc[0].ToString(), BehaviorImproveDesc2 = string.IsNullOrEmpty(behavior_improve_desc[1]) ? string.Empty : behavior_improve_desc[1].ToString(), BehaviorImproveDesc3 = string.IsNullOrEmpty(behavior_improve_desc[2]) ? string.Empty : behavior_improve_desc[2].ToString(), }; } else { return null; } } } #endregion #region แบบประเมินผล(ผู้บังคับบัญชา) public async Task GetEvaluateAssignAsync(Guid id, string no, string token) { var api_url = $"https://bmaehr.joolsoft.com/nodeapi/v1/evaluate?assign_id={id}&evaluate_no={no}"; EvaluateAssignResponse evaluate_assign; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var req = new HttpRequestMessage(HttpMethod.Get, api_url); var res = await client.SendAsync(req); var result = await res.Content.ReadAsStringAsync(); evaluate_assign = JsonConvert.DeserializeObject(result); if (evaluate_assign.data != null) { //Assign string[] date_start_parts = evaluate_assign.data.assign.date_start.Split('-'); string[] date_finish_parts = evaluate_assign.data.assign.date_finish.Split('-'); //Evaluate string[] evaluate_date_start_parts = evaluate_assign.data.evaluate.date_start.Split('-'); string[] evaluate_date_finish_parts = evaluate_assign.data.evaluate.date_finish.Split('-'); string[] evaluate_assessor_dated = evaluate_assign.data.evaluate.commander_dated.Split('-'); 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]), Name = string.IsNullOrEmpty(evaluate_assign.data.experimentee.name) ? string.Empty : evaluate_assign.data.experimentee.name, Position = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Position) ? string.Empty : evaluate_assign.data.experimentee.Position, Department = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Department) ? string.Empty : evaluate_assign.data.experimentee.Department, OrganizationOrganization = string.IsNullOrEmpty(evaluate_assign.data.experimentee.OrganizationOrganization) ? string.Empty : evaluate_assign.data.experimentee.OrganizationOrganization, Oc = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Oc) ? string.Empty : evaluate_assign.data.experimentee.Oc, 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, 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, KnowledgeLevel5 = evaluate_assign.data.evaluate.knowledge_level.ToString() == "5" ? "/" : string.Empty, SkillLevel1 = evaluate_assign.data.evaluate.skill_level.ToString() == "1" ? "/" : string.Empty, SkillLevel2 = evaluate_assign.data.evaluate.skill_level.ToString() == "2" ? "/" : string.Empty, SkillLevel3 = evaluate_assign.data.evaluate.skill_level.ToString() == "3" ? "/" : string.Empty, SkillLevel4 = evaluate_assign.data.evaluate.skill_level.ToString() == "4" ? "/" : string.Empty, SkillLevel5 = evaluate_assign.data.evaluate.skill_level.ToString() == "5" ? "/" : string.Empty, CompetencyLevel1 = evaluate_assign.data.evaluate.competency_level.ToString() == "1" ? "/" : string.Empty, CompetencyLevel2 = evaluate_assign.data.evaluate.competency_level.ToString() == "2" ? "/" : string.Empty, CompetencyLevel3 = evaluate_assign.data.evaluate.competency_level.ToString() == "3" ? "/" : string.Empty, CompetencyLevel4 = evaluate_assign.data.evaluate.competency_level.ToString() == "4" ? "/" : string.Empty, CompetencyLevel5 = evaluate_assign.data.evaluate.competency_level.ToString() == "5" ? "/" : string.Empty, LearnLevel1 = evaluate_assign.data.evaluate.learn_level.ToString() == "1" ? "/" : string.Empty, LearnLevel2 = evaluate_assign.data.evaluate.learn_level.ToString() == "2" ? "/" : string.Empty, LearnLevel3 = evaluate_assign.data.evaluate.learn_level.ToString() == "3" ? "/" : string.Empty, LearnLevel4 = evaluate_assign.data.evaluate.learn_level.ToString() == "4" ? "/" : string.Empty, LearnLevel5 = evaluate_assign.data.evaluate.learn_level.ToString() == "5" ? "/" : string.Empty, ApplyLevel1 = evaluate_assign.data.evaluate.apply_level.ToString() == "1" ? "/" : string.Empty, ApplyLevel2 = evaluate_assign.data.evaluate.apply_level.ToString() == "2" ? "/" : string.Empty, ApplyLevel3 = evaluate_assign.data.evaluate.apply_level.ToString() == "3" ? "/" : string.Empty, ApplyLevel4 = evaluate_assign.data.evaluate.apply_level.ToString() == "4" ? "/" : string.Empty, ApplyLevel5 = evaluate_assign.data.evaluate.apply_level.ToString() == "5" ? "/" : string.Empty, SuccessLevel1 = evaluate_assign.data.evaluate.success_level.ToString() == "1" ? "/" : string.Empty, SuccessLevel2 = evaluate_assign.data.evaluate.success_level.ToString() == "2" ? "/" : string.Empty, SuccessLevel3 = evaluate_assign.data.evaluate.success_level.ToString() == "3" ? "/" : string.Empty, SuccessLevel4 = evaluate_assign.data.evaluate.success_level.ToString() == "4" ? "/" : string.Empty, SuccessLevel5 = evaluate_assign.data.evaluate.success_level.ToString() == "5" ? "/" : string.Empty, AchievementOtherDesc = evaluate_assign.data.evaluate.achievement_other_desc, AchievementOtherLevel1 = evaluate_assign.data.evaluate.achievement_other_level.ToString() == "1" ? "/" : string.Empty, AchievementOtherLevel2 = evaluate_assign.data.evaluate.achievement_other_level.ToString() == "2" ? "/" : string.Empty, AchievementOtherLevel3 = evaluate_assign.data.evaluate.achievement_other_level.ToString() == "3" ? "/" : string.Empty, AchievementOtherLevel4 = evaluate_assign.data.evaluate.achievement_other_level.ToString() == "4" ? "/" : string.Empty, AchievementOtherLevel5 = evaluate_assign.data.evaluate.achievement_other_level.ToString() == "5" ? "/" : string.Empty, //table2 พฤติกรรม Conduct1Level1 = evaluate_assign.data.evaluate.conduct1_level.ToString() == "1" ? "/" : string.Empty, Conduct1Level2 = evaluate_assign.data.evaluate.conduct1_level.ToString() == "2" ? "/" : string.Empty, Conduct1Level3 = evaluate_assign.data.evaluate.conduct1_level.ToString() == "3" ? "/" : string.Empty, Conduct1Level4 = evaluate_assign.data.evaluate.conduct1_level.ToString() == "4" ? "/" : string.Empty, Conduct1Level5 = evaluate_assign.data.evaluate.conduct1_level.ToString() == "5" ? "/" : string.Empty, Conduct2Level1 = evaluate_assign.data.evaluate.conduct2_level.ToString() == "1" ? "/" : string.Empty, Conduct2Level2 = evaluate_assign.data.evaluate.conduct2_level.ToString() == "2" ? "/" : string.Empty, Conduct2Level3 = evaluate_assign.data.evaluate.conduct2_level.ToString() == "3" ? "/" : string.Empty, Conduct2Level4 = evaluate_assign.data.evaluate.conduct2_level.ToString() == "4" ? "/" : string.Empty, Conduct2Level5 = evaluate_assign.data.evaluate.conduct2_level.ToString() == "5" ? "/" : string.Empty, Conduct3Level1 = evaluate_assign.data.evaluate.conduct3_level.ToString() == "1" ? "/" : string.Empty, Conduct3Level2 = evaluate_assign.data.evaluate.conduct3_level.ToString() == "2" ? "/" : string.Empty, Conduct3Level3 = evaluate_assign.data.evaluate.conduct3_level.ToString() == "3" ? "/" : string.Empty, Conduct3Level4 = evaluate_assign.data.evaluate.conduct3_level.ToString() == "4" ? "/" : string.Empty, Conduct3Level5 = evaluate_assign.data.evaluate.conduct3_level.ToString() == "5" ? "/" : string.Empty, Conduct4Level1 = evaluate_assign.data.evaluate.conduct4_level.ToString() == "1" ? "/" : string.Empty, Conduct4Level2 = evaluate_assign.data.evaluate.conduct4_level.ToString() == "2" ? "/" : string.Empty, Conduct4Level3 = evaluate_assign.data.evaluate.conduct4_level.ToString() == "3" ? "/" : string.Empty, Conduct4Level4 = evaluate_assign.data.evaluate.conduct4_level.ToString() == "4" ? "/" : string.Empty, Conduct4Level5 = evaluate_assign.data.evaluate.conduct4_level.ToString() == "5" ? "/" : string.Empty, Moral1Level1 = evaluate_assign.data.evaluate.moral1_level.ToString() == "1" ? "/" : string.Empty, Moral1Level2 = evaluate_assign.data.evaluate.moral1_level.ToString() == "2" ? "/" : string.Empty, Moral1Level3 = evaluate_assign.data.evaluate.moral1_level.ToString() == "3" ? "/" : string.Empty, Moral1Level4 = evaluate_assign.data.evaluate.moral1_level.ToString() == "4" ? "/" : string.Empty, Moral1Level5 = evaluate_assign.data.evaluate.moral1_level.ToString() == "5" ? "/" : string.Empty, Moral2Level1 = evaluate_assign.data.evaluate.moral2_level.ToString() == "1" ? "/" : string.Empty, Moral2Level2 = evaluate_assign.data.evaluate.moral2_level.ToString() == "2" ? "/" : string.Empty, Moral2Level3 = evaluate_assign.data.evaluate.moral2_level.ToString() == "3" ? "/" : string.Empty, Moral2Level4 = evaluate_assign.data.evaluate.moral2_level.ToString() == "4" ? "/" : string.Empty, Moral2Level5 = evaluate_assign.data.evaluate.moral2_level.ToString() == "5" ? "/" : string.Empty, Moral3Level1 = evaluate_assign.data.evaluate.moral3_level.ToString() == "1" ? "/" : string.Empty, Moral3Level2 = evaluate_assign.data.evaluate.moral3_level.ToString() == "2" ? "/" : string.Empty, Moral3Level3 = evaluate_assign.data.evaluate.moral3_level.ToString() == "3" ? "/" : string.Empty, Moral3Level4 = evaluate_assign.data.evaluate.moral3_level.ToString() == "4" ? "/" : string.Empty, Moral3Level5 = evaluate_assign.data.evaluate.moral3_level.ToString() == "5" ? "/" : string.Empty, Discipline1Level1 = evaluate_assign.data.evaluate.discipline1_level.ToString() == "1" ? "/" : string.Empty, Discipline1Level2 = evaluate_assign.data.evaluate.discipline1_level.ToString() == "2" ? "/" : string.Empty, Discipline1Level3 = evaluate_assign.data.evaluate.discipline1_level.ToString() == "3" ? "/" : string.Empty, Discipline1Level4 = evaluate_assign.data.evaluate.discipline1_level.ToString() == "4" ? "/" : string.Empty, Discipline1Level5 = evaluate_assign.data.evaluate.discipline1_level.ToString() == "5" ? "/" : string.Empty, Discipline2Level1 = evaluate_assign.data.evaluate.discipline2_level.ToString() == "1" ? "/" : string.Empty, Discipline2Level2 = evaluate_assign.data.evaluate.discipline2_level.ToString() == "2" ? "/" : string.Empty, Discipline2Level3 = evaluate_assign.data.evaluate.discipline2_level.ToString() == "3" ? "/" : string.Empty, Discipline2Level4 = evaluate_assign.data.evaluate.discipline2_level.ToString() == "4" ? "/" : string.Empty, Discipline2Level5 = evaluate_assign.data.evaluate.discipline2_level.ToString() == "5" ? "/" : string.Empty, Discipline3Level1 = evaluate_assign.data.evaluate.discipline3_level.ToString() == "1" ? "/" : string.Empty, Discipline3Level2 = evaluate_assign.data.evaluate.discipline3_level.ToString() == "2" ? "/" : string.Empty, Discipline3Level3 = evaluate_assign.data.evaluate.discipline3_level.ToString() == "3" ? "/" : string.Empty, Discipline3Level4 = evaluate_assign.data.evaluate.discipline3_level.ToString() == "4" ? "/" : string.Empty, Discipline3Level5 = evaluate_assign.data.evaluate.discipline3_level.ToString() == "5" ? "/" : string.Empty, Discipline4Level1 = evaluate_assign.data.evaluate.discipline4_level.ToString() == "1" ? "/" : string.Empty, Discipline4Level2 = evaluate_assign.data.evaluate.discipline4_level.ToString() == "2" ? "/" : string.Empty, Discipline4Level3 = evaluate_assign.data.evaluate.discipline4_level.ToString() == "3" ? "/" : string.Empty, Discipline4Level4 = evaluate_assign.data.evaluate.discipline4_level.ToString() == "4" ? "/" : string.Empty, Discipline4Level5 = evaluate_assign.data.evaluate.discipline4_level.ToString() == "5" ? "/" : string.Empty, Discipline5Level1 = evaluate_assign.data.evaluate.discipline5_level.ToString() == "1" ? "/" : string.Empty, Discipline5Level2 = evaluate_assign.data.evaluate.discipline5_level.ToString() == "2" ? "/" : string.Empty, Discipline5Level3 = evaluate_assign.data.evaluate.discipline5_level.ToString() == "3" ? "/" : string.Empty, Discipline5Level4 = evaluate_assign.data.evaluate.discipline5_level.ToString() == "4" ? "/" : string.Empty, Discipline5Level5 = evaluate_assign.data.evaluate.discipline5_level.ToString() == "5" ? "/" : string.Empty, BehaviorOtherDesc = evaluate_assign.data.evaluate.behavior_other_desc, BehaviorOtherLevel1 = evaluate_assign.data.evaluate.behavior_other_level.ToString() == "1" ? "/" : string.Empty, BehaviorOtherLevel2 = evaluate_assign.data.evaluate.behavior_other_level.ToString() == "2" ? "/" : string.Empty, BehaviorOtherLevel3 = evaluate_assign.data.evaluate.behavior_other_level.ToString() == "3" ? "/" : string.Empty, BehaviorOtherLevel4 = evaluate_assign.data.evaluate.behavior_other_level.ToString() == "4" ? "/" : string.Empty, BehaviorOtherLevel5 = evaluate_assign.data.evaluate.behavior_other_level.ToString() == "5" ? "/" : string.Empty, BehaviorStrengthDesc = evaluate_assign.data.evaluate.behavior_strength_desc, BehaviorImproveDesc = evaluate_assign.data.evaluate.behavior_improve_desc, //table3 Orientation = evaluate_assign.data.evaluate.orientation == 1 ? "[/] ดำเนินการแล้ว [ ] ยังไม่ได้ดำเนินการ" : "[ ] ดำเนินการแล้ว [/] ยังไม่ได้ดำเนินการ", SelfLearning = evaluate_assign.data.evaluate.self_learning == 1 ? "[/] ดำเนินการแล้ว [ ] ยังไม่ได้ดำเนินการ" : "[ ] ดำเนินการแล้ว [/] ยังไม่ได้ดำเนินการ", TrainingSeminar = evaluate_assign.data.evaluate.training_seminar == 1 ? "[/] ดำเนินการแล้ว [ ] ยังไม่ได้ดำเนินการ" : "[ ] ดำเนินการแล้ว [/] ยังไม่ได้ดำเนินการ", OtherTraining = evaluate_assign.data.evaluate.other_training == 1 ? "[/] ดำเนินการแล้ว [ ] ยังไม่ได้ดำเนินการ" : "[ ] ดำเนินการแล้ว [/] ยังไม่ได้ดำเนินการ", CommanderName = string.IsNullOrEmpty(evaluate_assign.data.person.name) ? string.Empty : evaluate_assign.data.person.name, CommanderPosition = string.IsNullOrEmpty(evaluate_assign.data.person.Position) ? string.Empty : evaluate_assign.data.person.Position, AssessorDated = ConvertDateMonthYear(evaluate_assessor_dated[0], evaluate_assessor_dated[1], evaluate_assessor_dated[2]), }; } else { return null; } } } #endregion #region แบบประเมินผล(คณะกรรมการ) public async Task GetEvaluateChairmanAssignAsync(Guid id, string no, string token) { var api_url = $"https://bmaehr.joolsoft.com/nodeapi/v1/evaluate-chairman?assign_id={id}&evaluate_no={no}"; EvaluateChairmanAssignResponse evaluate_assign; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var req = new HttpRequestMessage(HttpMethod.Get, api_url); var res = await client.SendAsync(req); var result = await res.Content.ReadAsStringAsync(); evaluate_assign = JsonConvert.DeserializeObject(result); if (evaluate_assign.data != null) { //Assign string[] date_start_parts = evaluate_assign.data.assign.date_start.Split('-'); string[] date_finish_parts = evaluate_assign.data.assign.date_finish.Split('-'); //Evaluate string[] evaluate_date_start_parts = evaluate_assign.data.evaluate.date_start.Split('-'); string[] evaluate_date_finish_parts = evaluate_assign.data.evaluate.date_finish.Split('-'); string[] date_chiarman_part = string.IsNullOrEmpty(evaluate_assign.data.chairman.dated) ? null : evaluate_assign.data.chairman.dated.ToString().Split('-'); string[] date_mentor1_part = evaluate_assign.data.mentors[0].dated.ToString().Split('-'); string[] date_mentor2_part = evaluate_assign.data.mentors[1].dated.ToString().Split('-'); 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]), Name = string.IsNullOrEmpty(evaluate_assign.data.experimentee.name) ? string.Empty : evaluate_assign.data.experimentee.name, Position = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Position) ? string.Empty : evaluate_assign.data.experimentee.Position, Department = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Department) ? string.Empty : evaluate_assign.data.experimentee.Department, OrganizationOrganization = string.IsNullOrEmpty(evaluate_assign.data.experimentee.OrganizationOrganization) ? string.Empty : evaluate_assign.data.experimentee.OrganizationOrganization, Oc = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Oc) ? string.Empty : evaluate_assign.data.experimentee.Oc, 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]), ChairmanName = string.IsNullOrEmpty(evaluate_assign.data.chairman.profile.name) ? string.Empty : evaluate_assign.data.chairman.profile.name, ChairmanPosition = string.IsNullOrEmpty(evaluate_assign.data.chairman.profile.Position) ? string.Empty : evaluate_assign.data.chairman.profile.Position, ChairmanDate = date_chiarman_part != null ? ConvertDateMonthYear(date_chiarman_part[0], date_chiarman_part[1], date_chiarman_part[2]) : ConvertDateMonthYear("", "", ""), //คณะกรรม ? mentors ? MentorName1 = string.IsNullOrEmpty(evaluate_assign.data.mentors[0].profile.name) ? string.Empty : evaluate_assign.data.mentors[0].profile.name, MentorName2 = string.IsNullOrEmpty(evaluate_assign.data.mentors[1].profile.name) ? string.Empty : evaluate_assign.data.mentors[1].profile.name, MentorPosition1 = string.IsNullOrEmpty(evaluate_assign.data.mentors[0].profile.Position) ? string.Empty : evaluate_assign.data.mentors[0].profile.Position, MentorPosition2 = string.IsNullOrEmpty(evaluate_assign.data.mentors[1].profile.Position) ? string.Empty : evaluate_assign.data.mentors[1].profile.Position, MentorDate1 = date_mentor1_part != null ? ConvertDateMonthYear(date_mentor1_part[0], date_mentor1_part[1], date_mentor1_part[2]) : ConvertDateMonthYear("", "", ""), MentorDate2 = date_mentor2_part != null ? ConvertDateMonthYear(date_mentor2_part[0], date_mentor2_part[1], date_mentor2_part[2]) : ConvertDateMonthYear("", "", ""), //1 KnowledgeLevel = evaluate_assign.data.evaluate.knowledge_level.ToString().ToThaiNumber(), ApplyLevel = evaluate_assign.data.evaluate.apply_level.ToString().ToThaiNumber(), SuccessLevel = evaluate_assign.data.evaluate.success_level.ToString().ToThaiNumber(), AchievementOtherDesc = evaluate_assign.data.evaluate.achievement_other_desc, AchievementOtherLevel = evaluate_assign.data.evaluate.achievement_other_level.ToString().ToThaiNumber(), //2 Conduct1Level = evaluate_assign.data.evaluate.conduct1_level.ToString().ToThaiNumber(), Conduct2Level = evaluate_assign.data.evaluate.conduct2_level.ToString().ToThaiNumber(), Conduct3Level = evaluate_assign.data.evaluate.conduct3_level.ToString().ToThaiNumber(), Conduct4Level = evaluate_assign.data.evaluate.conduct4_level.ToString().ToThaiNumber(), Moral1Level = evaluate_assign.data.evaluate.moral1_level.ToString().ToThaiNumber(), Moral2Level = evaluate_assign.data.evaluate.moral2_level.ToString().ToThaiNumber(), Moral3Level = evaluate_assign.data.evaluate.moral3_level.ToString().ToThaiNumber(), Discipline1Level = evaluate_assign.data.evaluate.discipline1_level.ToString().ToThaiNumber(), Discipline2Level = evaluate_assign.data.evaluate.discipline2_level.ToString().ToThaiNumber(), Discipline3Level = evaluate_assign.data.evaluate.discipline3_level.ToString().ToThaiNumber(), Discipline4Level = evaluate_assign.data.evaluate.discipline4_level.ToString().ToThaiNumber(), Discipline5Level = evaluate_assign.data.evaluate.discipline4_level.ToString().ToThaiNumber(), BehaviorOtherDesc = evaluate_assign.data.evaluate.behavior_other_desc, BehaviorOtherLevel = evaluate_assign.data.evaluate.behavior_other_level.ToString().ToThaiNumber(), //3 AchievementScore = evaluate_assign.data.evaluate.achievement_score.ToString().ToThaiNumber(), AchievementPercent = evaluate_assign.data.evaluate.achievement_percent.ToString().ToThaiNumber(), AchievementResult = evaluate_assign.data.evaluate.achievement_result.ToString().ToThaiNumber(), BehaviorScore = evaluate_assign.data.evaluate.behavior_score.ToString().ToThaiNumber(), BehaviorPercent = evaluate_assign.data.evaluate.behavior_percent.ToString().ToThaiNumber(), BehaviorResult = evaluate_assign.data.evaluate.behavior_result.ToString().ToThaiNumber(), AchievementScoretotal = evaluate_assign.data.evaluate.achievement_score_total.ToString().ToThaiNumber(), BehaviorScoretotal = evaluate_assign.data.evaluate.behavior_score_total.ToString().ToThaiNumber(), //4 DevelopOrientationScore = evaluate_assign.data.evaluate.develop_orientation_score.ToString().ToThaiNumber(), DevelopSelfLearningScore = evaluate_assign.data.evaluate.develop_self_learning_score.ToString().ToThaiNumber(), DevelopTrainingSeminarScore = evaluate_assign.data.evaluate.develop_training_seminar_score.ToString().ToThaiNumber(), DevelopOtherTrainingScore = evaluate_assign.data.evaluate.develop_other_training_score.ToString().ToThaiNumber(), DevelopOrientationPercent = evaluate_assign.data.evaluate.develop_orientation_percent.ToString().ToThaiNumber(), DevelopSelfLearningPercent = evaluate_assign.data.evaluate.develop_self_learning_percent.ToString().ToThaiNumber(), DevelopTrainingSeminarPercent = evaluate_assign.data.evaluate.develop_training_seminar_percent.ToString().ToThaiNumber(), DevelopOtherTrainingPercent = evaluate_assign.data.evaluate.develop_other_training_percent.ToString().ToThaiNumber(), DevelopResult = evaluate_assign.data.evaluate.develop_result.ToString(), }; } else { return null; } } } #endregion #region แบบรายงานการประเมินผล public async Task GetEvaluateResultAssignAsync(Guid id, string token) { var api_url = $"https://bmaehr.joolsoft.com/nodeapi/v1/evaluate-result?assign_id={id}"; EvaluateResultAssignResponse evaluate_assign; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var req = new HttpRequestMessage(HttpMethod.Get, api_url); var res = await client.SendAsync(req); var result = await res.Content.ReadAsStringAsync(); evaluate_assign = JsonConvert.DeserializeObject(result); if (evaluate_assign.data != null) { string[] date_start_parts = evaluate_assign.data.assign.date_start.Split('-'); string[] date_finish_parts = evaluate_assign.data.assign.date_finish.Split('-'); string[] evaluate_date_start_parts = evaluate_assign.data.evaluate.date_start.Split('-'); 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)) { evaluate_assign.data.chairman.Position = string.Empty; } 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]), Position = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Position) ? string.Empty : evaluate_assign.data.experimentee.Position, Department = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Department) ? string.Empty : evaluate_assign.data.experimentee.Department, OrganizationOrganization = string.IsNullOrEmpty(evaluate_assign.data.experimentee.OrganizationOrganization) ? string.Empty : evaluate_assign.data.experimentee.OrganizationOrganization, Oc = string.IsNullOrEmpty(evaluate_assign.data.experimentee.Oc) ? string.Empty : evaluate_assign.data.experimentee.Oc, 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]), Reson = string.IsNullOrEmpty(evaluate_assign.data.evaluate.reson) ? string.Empty : evaluate_assign.data.evaluate.reson, DevelopComplete = evaluate_assign.data.evaluate.develop_complete.ToString() == "1" ? "/" : " ", NotDevelopComplete = evaluate_assign.data.evaluate.develop_complete.ToString() == "0" ? "/" : " ", PassResult = evaluate_assign.data.evaluate.pass_result.ToString() == "1" ? "/" : " ", NotPassResult = evaluate_assign.data.evaluate.pass_result.ToString() == "0" ? "/" : " ", ExpandMonth = string.IsNullOrEmpty(evaluate_assign.data.evaluate.expand_month.ToString()) ? string.Empty : evaluate_assign.data.evaluate.expand_month.ToString().ToThaiNumber(), ChairmanName = string.IsNullOrEmpty(evaluate_assign.data.chairman.name) ? evaluate_assign.data.chairman.name : string.Empty, ChairmanPosition = string.IsNullOrEmpty(evaluate_assign.data.chairman.Position) ? evaluate_assign.data.chairman.Position : "-", ChairmanDate = ConvertDateMonthYear(date_curent_parts[0], date_curent_parts[1], date_curent_parts[2]) }; } else { return null; } } } #endregion #region ฟังก์ชั่นแปลงวันเดือนปี public static string ConvertDateMonthYear(string year, string month, string date) { year = year.ToInteger().ToThaiYear().ToString().ToThaiNumber(); month = month.ToInteger().ToThaiMonth(); 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() .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(); } } }