diff --git a/Controllers/CandidateController.cs b/Controllers/CandidateController.cs
index b486b06..59f459d 100644
--- a/Controllers/CandidateController.cs
+++ b/Controllers/CandidateController.cs
@@ -40,19 +40,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล สถานะ ผู้สมัครสอบ
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล สถานะ ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("status/{examId:length(36)}")]
+ [HttpGet("status/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetStatusCandidateService(string examId)
+ public async Task> GetStatusCandidateService(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetStatusCandidateService(examId);
+ var items = await _candidateService.GetStatusCandidateService(examId, positionId);
return Success(GlobalMessages.Success, items);
}
@@ -65,7 +66,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// ข้อมูลผู้สมัครสอบ
///
- /// รหัสรอบสมัคร
+ /// Id ผู้สมัคร
///
/// เมื่อทำการดึง ข้อมูลผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
@@ -92,19 +93,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("information/{examId:length(36)}")]
+ [HttpGet("information/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncInformation(string examId)
+ public async Task> GetsAsyncInformation(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncInformation(examId);
+ var items = await _candidateService.GetsAsyncInformation(examId, positionId);
return Success(items);
}
@@ -118,19 +120,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("address/{examId:length(36)}")]
+ [HttpGet("address/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncAddress(string examId)
+ public async Task> GetsAsyncAddress(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncAddress(examId);
+ var items = await _candidateService.GetsAsyncAddress(examId, positionId);
return Success(items);
}
@@ -144,19 +147,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล ข้อมูลครอบครัว ผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล ข้อมูลครอบครัว ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("family/{examId:length(36)}")]
+ [HttpGet("family/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncFamily(string examId)
+ public async Task> GetsAsyncFamily(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncFamily(examId);
+ var items = await _candidateService.GetsAsyncFamily(examId, positionId);
return Success(items);
}
@@ -170,19 +174,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล อาชีพ ผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล อาชีพ ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("occupation/{examId:length(36)}")]
+ [HttpGet("occupation/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncOccupation(string examId)
+ public async Task> GetsAsyncOccupation(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncOccupation(examId);
+ var items = await _candidateService.GetsAsyncOccupation(examId, positionId);
return Success(items);
}
@@ -196,19 +201,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("career/{examId:length(36)}")]
+ [HttpGet("career/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncCareer(string examId)
+ public async Task> GetsAsyncCareer(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncCareer(examId);
+ var items = await _candidateService.GetsAsyncCareer(examId, positionId);
return Success(items);
}
@@ -222,19 +228,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ข้อมูล ประวัติการศีกษา ผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการดึง ข้อมูล ประวัติการศีกษา ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("education/{examId:length(36)}")]
+ [HttpGet("education/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncEducation(string examId)
+ public async Task> GetsAsyncEducation(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncEducation(examId);
+ var items = await _candidateService.GetsAsyncEducation(examId, positionId);
return Success(items);
}
@@ -248,19 +255,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ตรวจสอบว่าผู้ใช้งานสมัครสอบหรือยัง
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการตรวจสอบว่าผู้ใช้งานสมัครสอบหรือยัง สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("check/{examId:length(36)}")]
+ [HttpGet("check/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncRegisterExam(string examId)
+ public async Task> GetsAsyncRegisterExam(string examId, string positionId)
{
try
{
- var items = await _candidateService.GetsAsyncRegisterExam(examId);
+ var items = await _candidateService.GetsAsyncRegisterExam(examId, positionId);
return Success(items);
}
@@ -273,20 +281,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// อัพเดทข้อมูล ข้อมูลส่วนตัว ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// ข้อมูลส่วนตัว
///
/// เมื่อทำการอัพเดทข้อมูล ข้อมูลส่วนตัว ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("{examId:length(36)}")]
+ [HttpPost("{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UpdateAsync(string examId, CandidateResponseItem candidateInformation)
+ public async Task> UpdateAsync(string examId, string positionId, CandidateResponseItem candidateInformation)
{
try
{
- await _candidateService.UpdateAsync(examId, candidateInformation);
+ await _candidateService.UpdateAsync(examId, positionId, candidateInformation);
return Success();
}
@@ -299,20 +309,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// อัพเดทข้อมูล ข้อมูลส่วนตัว ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// ข้อมูลส่วนตัว
///
/// เมื่อทำการอัพเดทข้อมูล ข้อมูลส่วนตัว ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("information/{examId:length(36)}")]
+ [HttpPost("information/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UpdateAsyncInformation(string examId, CandidateInformationResponseItem candidateInformation)
+ public async Task> UpdateAsyncInformation(string examId, string positionId, CandidateInformationResponseItem candidateInformation)
{
try
{
- await _candidateService.UpdateAsyncInformation(examId, candidateInformation);
+ await _candidateService.UpdateAsyncInformation(examId, positionId, candidateInformation);
return Success();
}
@@ -325,20 +337,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// อัพเดทข้อมูล ข้อมูลที่อยู่ ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// ข้อมูลที่อยู่
///
/// เมื่อทำการอัพเดทข้อมูล ข้อมูลที่อยู่ ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("address/{examId:length(36)}")]
+ [HttpPost("address/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UpdateAsyncAddress(string examId, CandidateAddressResponseItem candidateAddress)
+ public async Task> UpdateAsyncAddress(string examId, string positionId, CandidateAddressResponseItem candidateAddress)
{
try
{
- await _candidateService.UpdateAsyncAddress(examId, candidateAddress);
+ await _candidateService.UpdateAsyncAddress(examId, positionId, candidateAddress);
return Success();
}
@@ -351,20 +365,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// อัพเดทข้อมูล ข้อมูลครอบครัว ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// ข้อมูลครอบครัว
///
/// เมื่อทำการอัพเดทข้อมูล ข้อมูลครอบครัว ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("family/{examId:length(36)}")]
+ [HttpPost("family/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UpdateAsyncFamily(string examId, CandidateFamilyResponseItem candidateFamily)
+ public async Task> UpdateAsyncFamily(string examId, string positionId, CandidateFamilyResponseItem candidateFamily)
{
try
{
- await _candidateService.UpdateAsyncFamily(examId, candidateFamily);
+ await _candidateService.UpdateAsyncFamily(examId, positionId, candidateFamily);
return Success();
}
@@ -377,20 +393,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// อัพเดทข้อมูล อาชีพ ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// อาชีพ
///
/// เมื่อทำการอัพเดทข้อมูล อาชีพ ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("occupation/{examId:length(36)}")]
+ [HttpPost("occupation/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UpdateAsyncOccupation(string examId, CandidateOccupationResponseItem candidateOccupation)
+ public async Task> UpdateAsyncOccupation(string examId, string positionId, CandidateOccupationResponseItem candidateOccupation)
{
try
{
- await _candidateService.UpdateAsyncOccupation(examId, candidateOccupation);
+ await _candidateService.UpdateAsyncOccupation(examId, positionId, candidateOccupation);
return Success();
}
@@ -403,20 +421,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// สร้างข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// ข้อมูลประวัติการทำงาน/ฝึกงาน
///
/// เมื่อทำการสร้างข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("career/{examId:length(36)}")]
+ [HttpPost("career/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CreateAsyncCareer(string examId, CandidateCareerResponseItem candidateCareer)
+ public async Task> CreateAsyncCareer(string examId, string positionId, CandidateCareerResponseItem candidateCareer)
{
try
{
- await _candidateService.CreateAsyncCareer(examId, candidateCareer);
+ await _candidateService.CreateAsyncCareer(examId, positionId, candidateCareer);
return Success();
}
@@ -429,20 +449,22 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// สร้างข้อมูล ประวัติการศีกษา ผู้สมัคร
///
+ /// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
/// ข้อมูลประวัติการศีกษา
///
/// เมื่อทำการสร้างข้อมูล ประวัติการศีกษา ผู้สมัคร สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost("education/{examId:length(36)}")]
+ [HttpPost("education/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CreateAsyncEducation(string examId, CandidateEducationResponseItem candidateEducation)
+ public async Task> CreateAsyncEducation(string examId, string positionId, CandidateEducationResponseItem candidateEducation)
{
try
{
- await _candidateService.CreateAsyncEducation(examId, candidateEducation);
+ await _candidateService.CreateAsyncEducation(examId, positionId, candidateEducation);
return Success();
}
@@ -564,19 +586,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// ผู้สมัครทำการสมัครสอบ
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อทำการผู้สมัครทำการสมัครสอบ สำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("register/{examId:length(36)}")]
+ [HttpGet("register/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> RegisterCandidateService(string examId)
+ public async Task> RegisterCandidateService(string examId, string positionId)
{
try
{
- await _candidateService.UserCheckCandidateService(examId, "checkRegister");
+ await _candidateService.UserCheckCandidateService(examId, positionId, "checkRegister");
return Success();
}
@@ -589,7 +612,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// เจ้าหน้าที่ตรวจคุณสมบัติผู้สมัคร
///
- /// รหัสใบสมัคร
+ /// รหัสใบสมัคร
///
/// เมื่อเจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครสำเร็จ
/// ไม่ได้ Login เข้าระบบ
@@ -598,11 +621,11 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CheckRegisterCandidateService(string candidate, RequestApprove item)
+ public async Task> CheckRegisterCandidateService(string candidateId, RequestApprove item)
{
try
{
- await _candidateService.AdminCheckCandidateService(candidate, item.Status ? "payment" : "rejectRegister", item);
+ await _candidateService.AdminCheckCandidateService(candidateId, item.Status ? "payment" : "rejectRegister", item);
return Success();
}
@@ -615,7 +638,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// เจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครไม่ผ่านและให้สมัครใหม่
///
- /// รหัสใบสมัคร
+ /// รหัสใบสมัคร
///
/// เมื่อเจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครไม่ผ่านและให้สมัครใหม่สำเร็จ
/// ไม่ได้ Login เข้าระบบ
@@ -624,11 +647,11 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> RejectRegisterCandidateService(string candidate, RequestApprove item)
+ public async Task> RejectRegisterCandidateService(string candidateId, RequestApprove item)
{
try
{
- await _candidateService.AdminCheckCandidateService(candidate, "rejectDelete", item);
+ await _candidateService.AdminCheckCandidateService(candidateId, "rejectDelete", item);
return Success();
}
@@ -638,36 +661,10 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
}
- // ///
- // /// ผู้สมัครทำการบันทึกหลักฐานชำระเงิน
- // ///
- // /// รหัสรอบสมัคร
- // ///
- // /// เมื่อทำการผู้สมัครทำการบันทึกหลักฐานชำระเงิน สำเร็จ
- // /// ไม่ได้ Login เข้าระบบ
- // /// เมื่อเกิดข้อผิดพลาดในการทำงาน
- // [HttpGet("payment/{examId:length(36)}")]
- // [ProducesResponseType(StatusCodes.Status200OK)]
- // [ProducesResponseType(StatusCodes.Status401Unauthorized)]
- // [ProducesResponseType(StatusCodes.Status500InternalServerError)]
- // public async Task> PaymentedCandidateService(string examId)
- // {
- // try
- // {
- // await _candidateService.UserCheckCandidateService(examId, "checkPayment");
-
- // return Success();
- // }
- // catch (Exception ex)
- // {
- // return Error(ex);
- // }
- // }
-
///
/// เจ้าหน้าที่ตรวจการชำระเงิน
///
- /// รหัสใบสมัคร
+ /// รหัสใบสมัคร
///
/// เมื่อเจ้าหน้าที่ตรวจการชำระเงินสำเร็จ
/// ไม่ได้ Login เข้าระบบ
@@ -676,11 +673,11 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CheckPaymentCandidateService(string candidate, RequestApprove item)
+ public async Task> CheckPaymentCandidateService(string candidateId, RequestApprove item)
{
try
{
- await _candidateService.AdminCheckCandidateService(candidate, item.Status ? "done" : "rejectPayment", item);
+ await _candidateService.AdminCheckCandidateService(candidateId, item.Status ? "checkSeat" : "rejectPayment", item);
return Success();
}
@@ -693,20 +690,46 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// เจ้าหน้าที่บันทึกสถานที่สอบ
///
- /// รหัสใบสมัคร
+ /// รหัสใบสมัคร
///
/// เมื่อเจ้าหน้าที่บันทึกสถานที่สอบสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("pass-done/{candidate:length(36)}")]
+ [HttpGet("pass-seat/{candidate:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CheckDoneCandidateService(string candidate)
+ public async Task> CheckCheckSeatCandidateService(string candidateId)
{
try
{
- await _candidateService.AdminPassCandidateService(candidate, "done");
+ await _candidateService.AdminPassCandidateService(candidateId, "checkPoint");
+
+ return Success();
+ }
+ catch (Exception ex)
+ {
+ return Error(ex);
+ }
+ }
+
+ ///
+ /// เจ้าหน้าที่บันทึกคะแนนสอบ
+ ///
+ /// รหัสใบสมัคร
+ ///
+ /// เมื่อเจ้าหน้าที่บันทึกคะแนนสอบสำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("pass-point/{candidate:length(36)}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> CheckPointCandidateService(string candidateId)
+ {
+ try
+ {
+ await _candidateService.AdminPassCandidateService(candidateId, "done");
return Success();
}
@@ -720,19 +743,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// get id รูปถ่าย
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อ get id รูปถ่ายสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("profile-image/{examId:length(36)}")]
+ [HttpGet("profile-image/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncProfileImage(string examId)
+ public async Task> GetsAsyncProfileImage(string examId, string positionId)
{
try
{
- var doc = await _candidateService.GetsAsyncProfileImage(examId);
+ var doc = await _candidateService.GetsAsyncProfileImage(examId, positionId);
if (doc == "")
return Success();
@@ -756,18 +780,19 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// อัปโหลดรูปถ่ายผู้สมัคร
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่ออัปโหลดรูปถ่ายผู้สมัครสำเร็จ
/// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPut("profile-image/{examId:length(36)}"), DisableRequestSizeLimit]
+ [HttpPut("profile-image/{examId:length(36)}/{positionId:length(36)}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
[AllowAnonymous]
- public async Task> UpdateProfileImageCandidateService(string examId)
+ public async Task> UpdateProfileImageCandidateService(string examId, string positionId)
{
try
{
@@ -777,7 +802,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
var file = Request.Form.Files[0];
- await _candidateService.UpdateAsyncProfileImage(examId, file);
+ await _candidateService.UpdateAsyncProfileImage(examId, positionId, file);
return Success();
}
@@ -791,19 +816,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// get id หลักฐานชำระ
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อ get id หลักฐานชำระสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("payment-image/{examId:length(36)}")]
+ [HttpGet("payment-image/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetsAsyncPaymentImg(string examId)
+ public async Task> GetsAsyncPaymentImg(string examId, string positionId)
{
try
{
- var doc = await _candidateService.GetsAsyncPaymentImg(examId);
+ var doc = await _candidateService.GetsAsyncPaymentImg(examId, positionId);
if (doc == "")
return Success();
@@ -827,15 +853,16 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// อัปเอกสารหลักฐานการชำระเงิน
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่ออัปเอกสารหลักฐานสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPut("payment-image/{examId:length(36)}"), DisableRequestSizeLimit]
+ [HttpPut("payment-image/{examId:length(36)}/{positionId:length(36)}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UploadPaymentCandidateService(string examId)
+ public async Task> UploadPaymentCandidateService(string examId, string positionId)
{
try
{
@@ -845,8 +872,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
var file = Request.Form.Files[0];
- await _candidateService.UpdateAsyncPaymentImage(examId, file);
- await _candidateService.UserCheckCandidateService(examId, "checkPayment");
+ await _candidateService.UpdateAsyncPaymentImage(examId, positionId, file);
+ await _candidateService.UserCheckCandidateService(examId, positionId, "checkPayment");
return Success();
}
@@ -860,19 +887,20 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// list เอกสารหลักฐาน
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่อ list เอกสารหลักฐานสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("upload/{examId:length(36)}")]
+ [HttpGet("upload/{examId:length(36)}/{positionId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> GetFileCandidateService(string examId)
+ public async Task> GetFileCandidateService(string examId, string positionId)
{
try
{
- var doc = await _candidateService.GetsAsyncFileUpload(examId);
+ var doc = await _candidateService.GetsAsyncFileUpload(examId, positionId);
return Success(doc);
}
@@ -886,15 +914,16 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// อัปโหลดเอกสารหลักฐาน
///
/// รหัสรอบสมัคร
+ /// Id ตำแหน่งสมัครสอบ
///
/// เมื่ออัปโหลดเอกสารหลักฐานสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPut("upload/{examId:length(36)}"), DisableRequestSizeLimit]
+ [HttpPut("upload/{examId:length(36)}/{positionId:length(36)}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CreateFileCandidateService(string examId)
+ public async Task> CreateFileCandidateService(string examId, string positionId)
{
try
{
@@ -904,7 +933,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
var file = Request.Form.Files[0];
- await _candidateService.UpdateAsyncDocument(examId, file);
+ await _candidateService.UpdateAsyncDocument(examId, positionId, file);
return Success();
}
@@ -922,7 +951,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// เมื่อลบเอกสารหลักฐานสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpDelete("upload/{examId:length(36)}"), DisableRequestSizeLimit]
+ [HttpDelete("upload/{documentId:length(36)}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
@@ -942,7 +971,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
///
/// โหลดไฟล์
///
- /// รหัสรอบสมัคร
+ /// Id ไฟล์ที่ต้องการโหลด
///
/// เมื่อโหลดไฟล์สำเร็จ
/// ไม่ได้ Login เข้าระบบ
diff --git a/Controllers/PeriodExamController.cs b/Controllers/PeriodExamController.cs
index 411c4a7..0949d76 100644
--- a/Controllers/PeriodExamController.cs
+++ b/Controllers/PeriodExamController.cs
@@ -1,4 +1,5 @@
using BMA.EHR.Recurit.Exam.Service.Models;
+using BMA.EHR.Recurit.Exam.Service.Request;
using BMA.EHR.Recurit.Exam.Service.Response;
using BMA.EHR.Recurit.Exam.Service.Services;
using Microsoft.AspNetCore.Authorization;
@@ -95,7 +96,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> CreateAsync(PeriodExam item)
+ public async Task> CreateAsync(RequestPeriodExam item)
{
try
{
@@ -122,7 +123,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> UpdateAsync(string examId, PeriodExam item)
+ public async Task> UpdateAsync(string examId, RequestPeriodExam item)
{
try
{
diff --git a/Core/GlobalMessages.cs b/Core/GlobalMessages.cs
index 0f99be9..40d627f 100644
--- a/Core/GlobalMessages.cs
+++ b/Core/GlobalMessages.cs
@@ -10,6 +10,7 @@
public const string DataExist = "มีข้อมูลดังกล่าวอยู่ในระบบแล้ว";
public const string NameDupicate = "ชื่อวันหยุดนี้มีอยู่ในระบบอยู่แล้ว";
public const string ExamNotFound = "ไม่พบข้อมูลการรับสมัครสอบ";
+ public const string PositionExamNotFound = "ไม่พบข้อมูลตำแหน่งการรับสมัครสอบ";
public const string CandidateNotFound = "ไม่พบข้อมูลผู้สมัครสอบ";
public const string CareerNotFound = "ไม่พบข้อมูลประวัติการทำงาน/ฝึกงาน";
public const string EducationNotFound = "ไม่พบข้อมูลประวัติการศีกษา";
diff --git a/Data/ApplicationDbContext.cs b/Data/ApplicationDbContext.cs
index edc17ea..9546807 100644
--- a/Data/ApplicationDbContext.cs
+++ b/Data/ApplicationDbContext.cs
@@ -38,7 +38,10 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
public DbSet Educations { get; set; }
public DbSet Documents { get; set; }
+
public DbSet CandidateDocuments { get; set; }
+ public DbSet PositionExams { get; set; }
+ public DbSet BankExams { get; set; }
}
}
diff --git a/Data/DatabaseSeeder.cs b/Data/DatabaseSeeder.cs
index 7950f2e..048af40 100644
--- a/Data/DatabaseSeeder.cs
+++ b/Data/DatabaseSeeder.cs
@@ -311,54 +311,54 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
}
public static async Task SeedPeriodExamAsync(WebApplication app)
{
- using var scope = app.Services.CreateScope();
- var service = scope.ServiceProvider.GetRequiredService();
+ // using var scope = app.Services.CreateScope();
+ // var service = scope.ServiceProvider.GetRequiredService();
- var insertedPeriodExam = new List();
+ // var insertedPeriodExam = new List();
- if ((await service.GetsAsync()).Count() == 0)
- {
- // read excels into object
- var excelFile = "SeedPeriodExam.xlsx";
- using (var excel = new ExcelPackage(new FileInfo(excelFile)))
- {
- // 1. Seed PeriodExam
- var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "periodexam");
- var totalRows = workSheet?.Dimension.Rows;
+ // if ((await service.GetsAsync()).Count() == 0)
+ // {
+ // // read excels into object
+ // var excelFile = "SeedPeriodExam.xlsx";
+ // using (var excel = new ExcelPackage(new FileInfo(excelFile)))
+ // {
+ // // 1. Seed PeriodExam
+ // var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "periodexam");
+ // var totalRows = workSheet?.Dimension.Rows;
- int row = 2;
+ // int row = 2;
- while (row <= totalRows)
- {
- var cell1 = workSheet?.Cells[row, 1]?.GetValue();
- if (cell1 == "" || cell1 == null) break;
+ // while (row <= totalRows)
+ // {
+ // var cell1 = workSheet?.Cells[row, 1]?.GetValue();
+ // if (cell1 == "" || cell1 == null) break;
- var PeriodExam = insertedPeriodExam.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue() ?? "")).FirstOrDefault();
- if (PeriodExam == null)
- {
+ // var PeriodExam = insertedPeriodExam.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue() ?? "")).FirstOrDefault();
+ // if (PeriodExam == null)
+ // {
- var inserted = new PeriodExam
- {
- Id = Guid.NewGuid(),
- Name = workSheet?.Cells[row, 1]?.GetValue() ?? "",
- Round = workSheet?.Cells[row, 2]?.GetValue() ?? 0,
- Fee = workSheet?.Cells[row, 3]?.GetValue() ?? 0,
- StartDate = workSheet?.Cells[row, 4]?.GetValue() ?? DateTime.Now.Date,
- EndDate = workSheet?.Cells[row, 5]?.GetValue() ?? DateTime.Now.Date,
- Year = workSheet?.Cells[row, 6]?.GetValue() ?? 0,
- AnnounceDate = workSheet?.Cells[row, 7]?.GetValue() ?? DateTime.Now.Date,
- IsActive = true,
- CreatedFullName = "System Administrator",
- CreatedAt = DateTime.Now
- };
- insertedPeriodExam.Add(inserted);
+ // var inserted = new PeriodExam
+ // {
+ // Id = Guid.NewGuid(),
+ // Name = workSheet?.Cells[row, 1]?.GetValue() ?? "",
+ // Round = workSheet?.Cells[row, 2]?.GetValue() ?? 0,
+ // Fee = workSheet?.Cells[row, 3]?.GetValue() ?? 0,
+ // // StartDate = workSheet?.Cells[row, 4]?.GetValue() ?? DateTime.Now.Date,
+ // // EndDate = workSheet?.Cells[row, 5]?.GetValue() ?? DateTime.Now.Date,
+ // Year = workSheet?.Cells[row, 6]?.GetValue() ?? 0,
+ // // AnnounceDate = workSheet?.Cells[row, 7]?.GetValue() ?? DateTime.Now.Date,
+ // IsActive = true,
+ // CreatedFullName = "System Administrator",
+ // CreatedAt = DateTime.Now
+ // };
+ // insertedPeriodExam.Add(inserted);
- await service.CreateAsync(inserted);
- }
- row++;
- }
- }
- }
+ // await service.CreateAsync(inserted);
+ // }
+ // row++;
+ // }
+ // }
+ // }
}
#endregion
}
diff --git a/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/Data/Migrations/ApplicationDbContextModelSnapshot.cs
index bb519af..3f429c3 100644
--- a/Data/Migrations/ApplicationDbContextModelSnapshot.cs
+++ b/Data/Migrations/ApplicationDbContextModelSnapshot.cs
@@ -19,6 +19,75 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
.HasAnnotation("ProductVersion", "7.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.BankExam", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("AccountName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อบัญชี");
+
+ b.Property("AccountNumber")
+ .HasColumnType("longtext")
+ .HasComment("เลขบัญชี");
+
+ b.Property("BankName")
+ .HasColumnType("longtext")
+ .HasComment("ธนาคาร");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("BankExams");
+ });
+
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b =>
{
b.Property("Id")
@@ -753,10 +822,23 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
- b.Property("AnnounceDate")
+ b.Property("AnnouncementEndDate")
.HasColumnType("datetime(6)")
- .HasColumnOrder(3)
- .HasComment("วันประกาศ");
+ .HasColumnOrder(6)
+ .HasComment("วันสิ้นสุดประกาศ");
+
+ b.Property("AnnouncementStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(5)
+ .HasComment("วันเริ่มประกาศ");
+
+ b.Property("CheckDisability")
+ .HasColumnType("tinyint(1)")
+ .HasComment("คนพิการ");
+
+ b.Property("CheckDocument")
+ .HasColumnType("tinyint(1)")
+ .HasComment("ตรวจสอบเอกสารหลังประกาศผลสอบ");
b.Property("CreatedAt")
.HasColumnType("datetime(6)")
@@ -781,11 +863,6 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
.HasColumnType("longtext")
.HasComment("รายละเอียดสมัครสอบ");
- b.Property("EndDate")
- .HasColumnType("datetime(6)")
- .HasColumnOrder(2)
- .HasComment("วันสิ้นสุด");
-
b.Property("Fee")
.HasColumnType("float")
.HasComment("ค่าธรรมเนียม");
@@ -817,19 +894,58 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
.IsRequired()
.HasMaxLength(150)
.HasColumnType("varchar(150)")
- .HasColumnOrder(4)
+ .HasColumnOrder(7)
.HasComment("ชื่อการสอบ");
- b.Property("Round")
- .HasColumnType("int")
- .HasColumnOrder(5)
- .HasComment("รอบการสอบ");
+ b.Property("Note")
+ .HasColumnType("longtext")
+ .HasComment("หมายเหตุ");
- b.Property("StartDate")
+ b.Property("OrganizationCodeId")
+ .HasColumnType("char(36)")
+ .HasComment("Id รหัสส่วนราชการ");
+
+ b.Property("OrganizationCodeName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อรหัสส่วนราชการ");
+
+ b.Property("OrganizationId")
+ .HasColumnType("char(36)")
+ .HasComment("Id หน่วยงาน");
+
+ b.Property("OrganizationName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อหน่วยงาน");
+
+ b.Property("PaymentEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(4)
+ .HasComment("วันสิ้นสุดชำระเงิน");
+
+ b.Property("PaymentKrungThai")
+ .HasColumnType("longtext")
+ .HasComment("ชำระเงินผ่านกรุงไทย");
+
+ b.Property("PaymentStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(3)
+ .HasComment("วันเริ่มชำระเงิน");
+
+ b.Property("RegisterEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(2)
+ .HasComment("วันสิ้นสุดสมัครสอบ");
+
+ b.Property("RegisterStartDate")
.HasColumnType("datetime(6)")
.HasColumnOrder(1)
.HasComment("วันเริ่มสมัครสอบ");
+ b.Property("Round")
+ .HasColumnType("int")
+ .HasColumnOrder(8)
+ .HasComment("รอบการสอบ");
+
b.Property("Year")
.HasColumnType("int")
.HasComment("ปีงบประมาณ");
@@ -839,6 +955,75 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.ToTable("PeriodExams");
});
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.Property("PositionId")
+ .HasColumnType("char(36)")
+ .HasComment("Id ตำแหน่ง");
+
+ b.Property("PositionName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อตำแหน่ง");
+
+ b.Property("TypeName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อประเภทแบบฟอร์ม");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("PositionExams");
+ });
+
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b =>
{
b.Property("Id")
@@ -1171,6 +1356,17 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.ToTable("SubDistricts");
});
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.BankExam", b =>
+ {
+ b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam")
+ .WithMany()
+ .HasForeignKey("PeriodExamId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("PeriodExam");
+ });
+
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b =>
{
b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict")
@@ -1330,6 +1526,17 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.Navigation("EducationLevel");
});
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b =>
+ {
+ b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam")
+ .WithMany()
+ .HasForeignKey("PeriodExamId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("PeriodExam");
+ });
+
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b =>
{
b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District")
diff --git a/Migrations/20230404134139_Update table Candidate add bank.Designer.cs b/Migrations/20230404134139_Update table Candidate add bank.Designer.cs
new file mode 100644
index 0000000..003b605
--- /dev/null
+++ b/Migrations/20230404134139_Update table Candidate add bank.Designer.cs
@@ -0,0 +1,1564 @@
+//
+using System;
+using BMA.EHR.Recurit.Exam.Service.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace BMA.EHR.Recurit.Exam.Service.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20230404134139_Update table Candidate add bank")]
+ partial class UpdatetableCandidateaddbank
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.4")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.BankExam", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("AccountName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อบัญชี");
+
+ b.Property("AccountNumber")
+ .HasColumnType("longtext")
+ .HasComment("เลขบัญชี");
+
+ b.Property("BankName")
+ .HasColumnType("longtext")
+ .HasComment("ธนาคาร");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("BankExams");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CitizenDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่ออกบัตร");
+
+ b.Property("CitizenDistrictId")
+ .HasColumnType("char(36)");
+
+ b.Property("CitizenId")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("เลขประจำตัวประชาชน");
+
+ b.Property("CitizenProvinceId")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("CurrentAddress")
+ .HasColumnType("longtext")
+ .HasComment("ที่อยู่ปัจจุบัน");
+
+ b.Property("CurrentDistrictId")
+ .HasColumnType("char(36)");
+
+ b.Property("CurrentProvinceId")
+ .HasColumnType("char(36)");
+
+ b.Property("CurrentSubDistrictId")
+ .HasColumnType("char(36)");
+
+ b.Property("CurrentZipCode")
+ .HasMaxLength(10)
+ .HasColumnType("varchar(10)")
+ .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน");
+
+ b.Property("DateOfBirth")
+ .HasMaxLength(40)
+ .HasColumnType("datetime(6)")
+ .HasComment("วันเกิด");
+
+ b.Property("Email")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("อีเมล");
+
+ b.Property("FatherFirstName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("ชื่อจริงบิดา");
+
+ b.Property("FatherLastName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("นามสกุลบิดา");
+
+ b.Property("FatherNationality")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("สัญชาติบิดา");
+
+ b.Property("FatherOccupation")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("อาชีพบิดา");
+
+ b.Property("FatherPrefixId")
+ .HasColumnType("char(36)");
+
+ b.Property("FirstName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasColumnOrder(1)
+ .HasComment("ชื่อจริง");
+
+ b.Property("Knowledge")
+ .HasColumnType("longtext")
+ .HasComment("ความสามารถพิเศษ");
+
+ b.Property("LastName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasColumnOrder(2)
+ .HasComment("นามสกุล");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Marry")
+ .HasColumnType("tinyint(1)")
+ .HasComment("คู่สมรส");
+
+ b.Property("MarryFirstName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("ชื่อจริงคู่สมรส");
+
+ b.Property("MarryLastName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("นามสกุลคู่สมรส");
+
+ b.Property("MarryNationality")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("สัญชาติคู่สมรส");
+
+ b.Property("MarryOccupation")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("อาชีพคู่สมรส");
+
+ b.Property("MarryPrefixId")
+ .HasColumnType("char(36)");
+
+ b.Property("MobilePhone")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("โทรศัพท์มือถือ");
+
+ b.Property("MotherFirstName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("ชื่อจริงมารดา");
+
+ b.Property("MotherLastName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("นามสกุลมารดา");
+
+ b.Property("MotherNationality")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("สัญชาติมารดา");
+
+ b.Property("MotherOccupation")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("อาชีพมารดา");
+
+ b.Property("MotherPrefixId")
+ .HasColumnType("char(36)");
+
+ b.Property("Nationality")
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(3)
+ .HasComment("สัญชาติ");
+
+ b.Property("OccupationCompany")
+ .HasColumnType("longtext")
+ .HasComment("สำนัก/บริษัท บริษัท");
+
+ b.Property("OccupationDepartment")
+ .HasColumnType("longtext")
+ .HasComment("กอง/ฝ่าย บริษัท");
+
+ b.Property("OccupationEmail")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasComment("อีเมล บริษัท");
+
+ b.Property("OccupationPosition")
+ .HasColumnType("longtext")
+ .HasComment("ตำแหน่งอาชีพ");
+
+ b.Property("OccupationTelephone")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("โทรศัพท์ บริษัท");
+
+ b.Property("OccupationType")
+ .HasColumnType("longtext")
+ .HasComment("ประเภทอาชีพที่ทำงานมาก่อน");
+
+ b.Property("PaymentImgId")
+ .HasColumnType("char(36)");
+
+ b.Property("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.Property("PrefixId")
+ .HasColumnType("char(36)");
+
+ b.Property("ProfileImgId")
+ .HasColumnType("char(36)");
+
+ b.Property("RegistAddress")
+ .HasColumnType("longtext")
+ .HasComment("ที่อยู่ตามทะเบียนบ้าน");
+
+ b.Property("RegistDistrictId")
+ .HasColumnType("char(36)");
+
+ b.Property("RegistProvinceId")
+ .HasColumnType("char(36)");
+
+ b.Property("RegistSame")
+ .HasColumnType("tinyint(1)")
+ .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน");
+
+ b.Property("RegistSubDistrictId")
+ .HasColumnType("char(36)");
+
+ b.Property("RegistZipCode")
+ .HasMaxLength(10)
+ .HasColumnType("varchar(10)")
+ .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน");
+
+ b.Property("RejectDetail")
+ .HasColumnType("longtext")
+ .HasComment("เหตุผลการไม่อนุมัติ");
+
+ b.Property("RelationshipId")
+ .HasColumnType("char(36)");
+
+ b.Property("SeatNumber")
+ .HasColumnType("longtext")
+ .HasComment("เลขที่นั่งสอบ");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("สถานะผู้สมัคร");
+
+ b.Property("Telephone")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("โทรศัพท์");
+
+ b.Property("UserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasComment("User Id ผู้สมัคร");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CitizenDistrictId");
+
+ b.HasIndex("CitizenProvinceId");
+
+ b.HasIndex("CurrentDistrictId");
+
+ b.HasIndex("CurrentProvinceId");
+
+ b.HasIndex("CurrentSubDistrictId");
+
+ b.HasIndex("FatherPrefixId");
+
+ b.HasIndex("MarryPrefixId");
+
+ b.HasIndex("MotherPrefixId");
+
+ b.HasIndex("PaymentImgId");
+
+ b.HasIndex("PeriodExamId");
+
+ b.HasIndex("PrefixId");
+
+ b.HasIndex("ProfileImgId");
+
+ b.HasIndex("RegistDistrictId");
+
+ b.HasIndex("RegistProvinceId");
+
+ b.HasIndex("RegistSubDistrictId");
+
+ b.HasIndex("RelationshipId");
+
+ b.ToTable("Candidates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CandidateDocument", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CandidateId")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DocumentId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CandidateId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("CandidateDocuments");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CandidateId")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DurationEnd")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(2)
+ .HasComment("ระยะเวลาสิ้นสุด");
+
+ b.Property("DurationStart")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(1)
+ .HasComment("ระยะเวลาเริ่ม");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasColumnOrder(3)
+ .HasComment("สถานที่ทำงาน/ฝึกงาน");
+
+ b.Property("Position")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasColumnOrder(4)
+ .HasComment("ตำแหน่ง/ลักษณะงาน");
+
+ b.Property("Reason")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .HasColumnOrder(6)
+ .HasComment("เหตุผลที่ออก");
+
+ b.Property("Salary")
+ .HasMaxLength(20)
+ .HasColumnType("int")
+ .HasColumnOrder(5)
+ .HasComment("เงินเดือนสุดท้ายก่อนออก");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CandidateId");
+
+ b.ToTable("Careers");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(1)")
+ .HasColumnOrder(2)
+ .HasComment("สถานะการใช้งาน");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasMaxLength(150)
+ .HasColumnType("varchar(150)")
+ .HasColumnOrder(1)
+ .HasComment("เขต/อำเภอ");
+
+ b.Property("ProvinceId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProvinceId");
+
+ b.ToTable("Districts");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Detail")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("FileName")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)");
+
+ b.Property("FileSize")
+ .HasColumnType("int");
+
+ b.Property("FileType")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("ObjectRefId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Documents");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CandidateId")
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(104)
+ .HasComment("ชื่อ User ที่สร้างข้อมูล");
+
+ b.Property("CreatedUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(101)
+ .HasComment("User Id ที่สร้างข้อมูล");
+
+ b.Property("DurationEnd")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(2)
+ .HasComment("ระยะเวลาสิ้นสุด");
+
+ b.Property("DurationStart")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(1)
+ .HasComment("ระยะเวลาเริ่ม");
+
+ b.Property("EducationLevelId")
+ .HasColumnType("char(36)");
+
+ b.Property("LastUpdateFullName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .HasColumnOrder(105)
+ .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdateUserId")
+ .IsRequired()
+ .HasMaxLength(40)
+ .HasColumnType("varchar(40)")
+ .HasColumnOrder(103)
+ .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
+
+ b.Property("LastUpdatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(102)
+ .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
+
+ b.Property