ส่งเมลการสมัคร

This commit is contained in:
Kittapath 2023-04-26 16:14:22 +07:00
parent ae60457a3e
commit a5c538874d
8 changed files with 203 additions and 5 deletions

View file

@ -18,6 +18,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
private readonly MetadataDbContext _contextMetadata;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly MinIOService _minioService;
private readonly MailService _mailService;
#endregion
@ -26,12 +27,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
public CandidateService(ApplicationDbContext context,
MetadataDbContext contextMetadata,
IHttpContextAccessor httpContextAccessor,
MinIOService minioService)
MinIOService minioService,
MailService mailService)
{
_context = context;
_contextMetadata = contextMetadata;
_httpContextAccessor = httpContextAccessor;
_minioService = minioService;
_mailService = mailService;
}
#endregion
@ -1707,6 +1710,18 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (candidate == null)
throw new Exception(GlobalMessages.CandidateNotFound);
if (status == "checkRegister")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + exam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอเจ้าหน้าที่ตรวจสอบข้อมูล";
_mailService.SendMailToUser(subject, body, "kittapath@frappet.com");
}
if (status == "checkPayment")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + exam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอเจ้าหน้าที่ตรวจสอบหลักฐานชำระเงิน";
_mailService.SendMailToUser(subject, body, "kittapath@frappet.com");
}
candidate.Status = status;
await _context.SaveChangesAsync();
@ -1735,24 +1750,49 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (status != "rejectDelete")
{
candidate.Status = status;
if (status == "rejectRegister" || status == "rejectPayment")
if (status == "rejectRegister")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " มีคุณสมบัติสมัครสอบไม่ผ่านกรุณาตรวจสอบข้อมูล";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
candidate.RejectDetail = item.Reason;
}
if (status == "rejectPayment")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " มีหลักฐานชำระเงินไม่ถูกต้องกรุณาตรวจสอบข้อมูล";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
candidate.RejectDetail = item.Reason;
}
else if (status == "payment" && candidate.PeriodExam.Fee == 0)
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอเจ้าหน้าที่จัดที่นั่งสอบ";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
candidate.Status = "checkSeat";
var num = periodExam.Count() + 1;
candidate.ExamIdenNumber = "CDC-" + num;
}
else if (status == "payment" && candidate.PeriodExam.Fee != 0)
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอชำระค่าสมัครสอบ";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
}
if (candidate.Status == "checkSeat")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอเจ้าหน้าที่จัดที่นั่งสอบ";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
var num = periodExam.Count() + 1;
candidate.ExamIdenNumber = "CDC-" + num;
}
}
else
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " มีคุณสมบัติไม่ผ่านตามเงื่อนไข";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
_context.Candidates.Remove(candidate);
}
@ -1762,11 +1802,27 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
public async Task AdminPassCandidateService(string candidateId, string status)
{
var candidate = await _context.Candidates.AsQueryable()
.Include(x => x.PeriodExam)
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId));
if (candidate == null)
throw new Exception(GlobalMessages.CandidateNotFound);
if (candidate.PeriodExam == null)
throw new Exception(GlobalMessages.ExamNotFound);
if (status == "done")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: สอบคัดเลือกสำเร็จ";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
}
if (status == "checkPoint")
{
var subject = "แจ้งผลการสมัครสอบคัดเลือก " + candidate.PeriodExam.Name;
var body = candidate.FirstName + " " + candidate.LastName + " สถานะการสมัครสอบ: รอเจ้าหน้าที่สรุปคะแนนสอบ";
if (candidate.Email != null) _mailService.SendMailToUser(subject, body, candidate.Email);
}
candidate.Status = status;
await _context.SaveChangesAsync();