diff --git a/BMA.EHR.Recruit.Service.csproj b/BMA.EHR.Recruit.Service.csproj
index b44e7c2..c39d62f 100644
--- a/BMA.EHR.Recruit.Service.csproj
+++ b/BMA.EHR.Recruit.Service.csproj
@@ -58,4 +58,13 @@
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
diff --git a/Controllers/RecruitController.cs b/Controllers/RecruitController.cs
index ee2260c..d5f0c5c 100644
--- a/Controllers/RecruitController.cs
+++ b/Controllers/RecruitController.cs
@@ -17,6 +17,7 @@ using Sentry;
using Swashbuckle.AspNetCore.Annotations;
using System.Data;
using System.Net;
+using System.Net.WebSockets;
using System.Security.Claims;
using System.Text;
@@ -396,6 +397,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
PaymentStartDate = req.PaymentStartDate,
PaymentEndDate = req.PaymentEndDate,
Note = req.Note,
+ AnnouncementDate = req.AnnouncementDate,
});
await _context.SaveChangesAsync();
@@ -445,6 +447,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
data.PaymentStartDate = req.PaymentStartDate;
data.ExamDate = req.ExamDate;
data.Note = req.Note;
+ data.AnnouncementDate = req.AnnouncementDate;
await _context.SaveChangesAsync();
@@ -662,6 +665,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
r.CitizenCardIssuer = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalCardIssue)]?.GetValue();
r.CitizenCardExpireDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalCardExpireDate)]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-"));
r.ApplyDate = (DateTime)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ApplyDate)]?.GetValue();
+ r.PositionName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PositionName)]?.GetValue().IsNull("");
// address
@@ -936,7 +940,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "System Administrator",
});
-
+
//await _context.RecruitImports.AddAsync(imported);
// import datafile
@@ -975,7 +979,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
r.CitizenCardIssuer = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalCardIssue)]?.GetValue();
r.CitizenCardExpireDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalCardExpireDate)]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-"));
r.ApplyDate = (DateTime)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ApplyDate)]?.GetValue();
-
+ r.PositionName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PositionName)]?.GetValue().IsNull("");
// address
r.Addresses.Add(new RecruitAddress()
@@ -1169,10 +1173,12 @@ namespace BMA.EHR.Recruit.Service.Controllers
r.FullA = (int)workSheet?.Cells[7, 7]?.GetValue().Replace("(", "").Replace(")", "").Replace("คะแนน", "").Trim().ToInteger();
r.SumA = workSheet?.Cells[row, 7]?.GetValue() == "ขส." ? 0 : (int)workSheet?.Cells[row, 7]?.GetValue().Replace(".00", "").ToInteger();
r.PercentageA = workSheet?.Cells[row, 8]?.GetValue() == "ขส." ? 0.0 : (double)workSheet?.Cells[row, 8]?.GetValue();
+ r.AStatus = workSheet?.Cells[row, 9]?.GetValue();
r.FullB = (int)workSheet?.Cells[7, 12]?.GetValue().Replace("(", "").Replace(")", "").Replace("คะแนน", "").Trim().ToInteger();
r.SumB = workSheet?.Cells[row, 12]?.GetValue() == "ขส." ? 0 : (int)workSheet?.Cells[row, 12]?.GetValue().Replace(".00", "").ToInteger();
r.PercentageB = workSheet?.Cells[row, 13]?.GetValue() == "ขส." ? 0.0 : (double)workSheet?.Cells[row, 13]?.GetValue();
+ r.BStatus = workSheet?.Cells[row, 14]?.GetValue();
r.SumAB = workSheet?.Cells[row, 15]?.GetValue() == "ขส." ? 0 : (int)workSheet?.Cells[row, 15]?.GetValue().Replace(".00", "").ToInteger();
r.ABStatus = workSheet?.Cells[row, 17]?.GetValue();
@@ -1180,6 +1186,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
r.FullC = (int)workSheet?.Cells[7, 20]?.GetValue().Replace("(", "").Replace(")", "").Replace("คะแนน", "").Trim().ToInteger();
r.SumC = workSheet?.Cells[row, 20]?.GetValue() == "ขส." ? 0 : (int)workSheet?.Cells[row, 20]?.GetValue().Replace(".00", "").ToInteger();
r.PercentageC = workSheet?.Cells[row, 21]?.GetValue() == "ขส." ? 0.0 : (double)workSheet?.Cells[row, 21]?.GetValue();
+ r.CStatus = workSheet?.Cells[row, 22]?.GetValue();
r.ExamStatus = workSheet?.Cells[row, 24]?.GetValue();
r.Major = workSheet.Name;
@@ -1434,6 +1441,226 @@ namespace BMA.EHR.Recruit.Service.Controllers
#endregion
+ #region " For CMS "
+
+ [HttpGet("competitive")]
+ [AllowAnonymous]
+ public IActionResult GetPeriodForCMS()
+ {
+ try
+ {
+ var periods = _context.RecruitImports.AsQueryable()
+ .Select(r => new
+ {
+ id = r.Id,
+ title = $"{r.Name} ครั้งที่ {r.Order}/{r.Year.ToThaiYear()}",
+ category = "สำนักงาน ก.ก.",
+ category_id = 1,
+ announcement_startDate = r.AnnouncementStartDate == null ? "" : r.AnnouncementStartDate.Value.ToString("yyyy-mm-dd"),
+ announcement_endDate = r.AnnouncementEndDate == null ? "" : r.AnnouncementEndDate.Value.ToString("yyyy-MM-dd"),
+ announcementExam = true,
+ register_startDate = r.RegisterStartDate == null ? "" : r.RegisterStartDate.Value.ToString("yyyy-MM-dd"),
+ register_endDate = r.RegisterEndDate == null ? "" : r.RegisterEndDate.Value.ToString("yyyy-MM-dd"),
+ payment_startDate = r.PaymentStartDate == null ? "" : r.PaymentStartDate.Value.ToString("yyyy-MM-dd"),
+ payment_endDate = r.PaymentEndDate == null ? "" : r.PaymentEndDate.Value.ToString("yyyy-MM-dd"),
+ exam_date = r.ExamDate == null ? "" : r.ExamDate.Value.ToString("yyyy-MM-dd")
+
+ })
+ .ToList();
+
+ return Ok(periods);
+ }
+ catch (Exception ex)
+ {
+ return StatusCode(500, ex.Message);
+ }
+ }
+
+ #endregion
+
+ #region " Export Excel "
+
+ [HttpGet("export/exam/{id:length(36)}")]
+ public async Task> ExportExamAsync(Guid id)
+ {
+ var data = await _context.RecruitImports.AsQueryable()
+ .Include(x => x.Recruits)
+ .FirstOrDefaultAsync(x => x.Id == id);
+
+ if (data == null)
+ return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
+
+ var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}";
+
+ var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
+
+ var template_file = Path.Combine(template_dir, "ExamList.xlsx");
+
+ var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
+ if (!Directory.Exists(tmpDir))
+ Directory.CreateDirectory(tmpDir);
+
+ var exportFile = Path.Combine(tmpDir, $"ExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
+ try
+ {
+ // copy template
+ System.IO.File.Copy(template_file, exportFile);
+
+ using (var excel = new ExcelPackage(new FileInfo(exportFile)))
+ {
+ var workSheet = excel.Workbook.Worksheets[0];
+
+
+ workSheet.Cells[1, 2].Value = header;
+ var recruits = data.Recruits.OrderBy(x => x.ExamId).ToList();
+
+ var row = 4; // start at row 4
+ foreach (var item in recruits)
+ {
+ workSheet.Cells[row, 1].Value = item.ExamId;
+ workSheet.Cells[row, 2].Value = item.CitizenId;
+ workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
+ workSheet.Cells[row, 4].Value = item.PositionName;
+
+ row++;
+ }
+
+ excel.Save();
+
+ using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
+ {
+ byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
+ fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
+ fs.Close();
+
+ var fname = Path.GetFileName(exportFile);
+
+ Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
+
+ var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ {
+ FileDownloadName = fname
+ };
+
+ return ret;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้มีสิทธิ์สอบได้!!");
+ }
+ finally
+ {
+ if (System.IO.File.Exists(exportFile))
+ System.IO.File.Delete(exportFile);
+ }
+ }
+
+ [HttpGet("export/pass-exam/{id:length(36)}")]
+ public async Task> ExportPassExamAsync(Guid id)
+ {
+ var data = await _context.RecruitImports.AsQueryable()
+ .Include(x => x.Recruits)
+ .FirstOrDefaultAsync(x => x.Id == id);
+
+ var data_pass = await _context.RecruitImports.AsQueryable()
+ .Include(x => x.ScoreImport)
+ .ThenInclude(x => x.Scores)
+ .FirstOrDefaultAsync(x => x.Id == id);
+
+ if (data == null)
+ return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
+
+ if(data_pass == null)
+ return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
+
+ var header = $"{data.Name} ครั้งที่ {data.Order}/{data.Year.ToThaiYear()}";
+
+ var template_dir = Path.Combine(_webHostEnvironment.ContentRootPath, "Templates");
+
+ var template_file = Path.Combine(template_dir, "PassAExamList.xlsx");
+
+ var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
+ if (!Directory.Exists(tmpDir))
+ Directory.CreateDirectory(tmpDir);
+
+ var exportFile = Path.Combine(tmpDir, $"PassExamList_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx");
+
+ try
+ {
+ var result = (from r in data.Recruits.ToList()
+ join s in data_pass.ScoreImport.Scores.Where(x => x.AStatus == "ผ่าน").ToList() on r.ExamId equals s.ExamId
+ select new
+ {
+ r.ExamId,
+ r.CitizenId,
+ r.Prefix,
+ r.FirstName,
+ r.LastName,
+ s.FullA,
+ s.SumA,
+ s.AStatus
+ }).ToList();
+
+ // copy template
+ System.IO.File.Copy(template_file, exportFile);
+
+ using (var excel = new ExcelPackage(new FileInfo(exportFile)))
+ {
+ var workSheet = excel.Workbook.Worksheets[0];
+
+
+ workSheet.Cells[1, 2].Value = header;
+ var recruits = data.Recruits.OrderBy(x => x.ExamId).ToList();
+
+ var row = 4; // start at row 4
+ foreach (var item in result)
+ {
+ workSheet.Cells[row, 1].Value = item.ExamId;
+ workSheet.Cells[row, 2].Value = item.CitizenId;
+ workSheet.Cells[row, 3].Value = $"{item.Prefix}{item.FirstName} {item.LastName}";
+ workSheet.Cells[row, 4].Value = item.FullA;
+ workSheet.Cells[row, 5].Value = item.SumA;
+ workSheet.Cells[row, 6].Value = "";
+
+ row++;
+ }
+
+ excel.Save();
+
+ using (FileStream fs = new FileStream(exportFile, FileMode.Open, FileAccess.Read))
+ {
+ byte[] bytes = System.IO.File.ReadAllBytes(exportFile);
+ fs.Read(bytes, 0, System.Convert.ToInt32(fs.Length));
+ fs.Close();
+
+ var fname = Path.GetFileName(exportFile);
+
+ Response.Headers["Content-Disposition"] = $"inline; filename={fname}";
+
+ var ret = new FileContentResult(bytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ {
+ FileDownloadName = fname
+ };
+
+ return ret;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ return Error(ex, "ไม่สามารถส่งออกรายชื่อผู้สอบผ่านได้!!");
+ }
+ finally
+ {
+ if (System.IO.File.Exists(exportFile))
+ System.IO.File.Delete(exportFile);
+ }
+ }
+
+ #endregion
+
#endregion
}
}
\ No newline at end of file
diff --git a/Migrations/20230424015003_Add Field PositionName.Designer.cs b/Migrations/20230424015003_Add Field PositionName.Designer.cs
new file mode 100644
index 0000000..b823fe5
--- /dev/null
+++ b/Migrations/20230424015003_Add Field PositionName.Designer.cs
@@ -0,0 +1,1338 @@
+//
+using System;
+using BMA.EHR.Recruit.Service.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace BMA.EHR.Recruit.Service.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20230424015003_Add Field PositionName")]
+ partial class AddFieldPositionName
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("BMA.EHR.Recruit.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.Recruit.Service.Models.Recruits.Recruit", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("ApplyDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CitizenCardExpireDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CitizenCardIssuer")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("CitizenId")
+ .IsRequired()
+ .HasMaxLength(13)
+ .HasColumnType("varchar(13)")
+ .HasComment("เลขประจำตัวประชาชน");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime(6)");
+
+ 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("DateOfBirth")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ExamId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(150)
+ .HasColumnType("varchar(150)");
+
+ b.Property("Gendor")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)");
+
+ b.Property("Isspecial")
+ .IsRequired()
+ .HasMaxLength(1)
+ .HasColumnType("varchar(1)");
+
+ b.Property("LastName")
+ .IsRequired()
+ .HasMaxLength(150)
+ .HasColumnType("varchar(150)");
+
+ 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")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)");
+
+ b.Property("ModifiedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("National")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("PositionName")
+ .HasColumnType("longtext");
+
+ b.Property("Prefix")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("Qualified")
+ .IsRequired()
+ .HasMaxLength(1)
+ .HasColumnType("varchar(1)");
+
+ b.Property("Race")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("RecruitImportId")
+ .HasColumnType("char(36)");
+
+ b.Property("RefNo")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)");
+
+ b.Property("Religion")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Remark")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitImportId");
+
+ b.ToTable("Recruits");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("Address")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Address1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Amphur")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Amphur1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ 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("District")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("District1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ 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("Mobile")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Moo")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Moo1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Province")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Province1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("RecruitId")
+ .HasColumnType("char(36)");
+
+ b.Property("Road")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Road1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Soi")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Soi1")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Telephone")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("ZipCode")
+ .IsRequired()
+ .HasMaxLength(5)
+ .HasColumnType("varchar(5)");
+
+ b.Property("ZipCode1")
+ .IsRequired()
+ .HasMaxLength(5)
+ .HasColumnType("varchar(5)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitId");
+
+ b.ToTable("RecruitAddresses");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CertificateNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ 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("Description")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("ExpiredDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("IssueDate")
+ .HasColumnType("datetime(6)");
+
+ 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("RecruitId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitId");
+
+ b.ToTable("RecruitCertificates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", 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("CreatedDate")
+ .HasColumnType("datetime(6)");
+
+ 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("DocumentFileId")
+ .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("RecruitId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentFileId");
+
+ b.HasIndex("RecruitId");
+
+ b.ToTable("RecruitDocuments");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("BachelorDate")
+ .HasColumnType("datetime(6)");
+
+ 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("Degree")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("GPA")
+ .HasColumnType("double");
+
+ b.Property("HighDegree")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ 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("Major")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("MajorGroupId")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)");
+
+ b.Property("MajorGroupName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("RecruitId")
+ .HasColumnType("char(36)");
+
+ b.Property("Specialist")
+ .IsRequired()
+ .HasMaxLength(1000)
+ .HasColumnType("varchar(1000)");
+
+ b.Property("University")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitId");
+
+ b.ToTable("RecruitEducations");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("AnnouncementEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(7)
+ .HasComment("วันสิ้นสุดประกาศ");
+
+ b.Property("AnnouncementStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(6)
+ .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("Detail")
+ .HasColumnType("text")
+ .HasColumnOrder(4)
+ .HasComment("รายละเอียด");
+
+ b.Property("ExamDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(12)
+ .HasComment("วันที่สอบ");
+
+ b.Property("Fee")
+ .HasColumnType("int")
+ .HasColumnOrder(5)
+ .HasComment("ค่าธรรมเนียม");
+
+ b.Property("ImportFileId")
+ .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("Name")
+ .IsRequired()
+ .HasMaxLength(250)
+ .HasColumnType("varchar(250)")
+ .HasColumnOrder(2)
+ .HasComment("รอบการสอบ");
+
+ b.Property("Note")
+ .HasColumnType("text")
+ .HasColumnOrder(13)
+ .HasComment("หมายเหตุ");
+
+ b.Property("Order")
+ .HasColumnType("int")
+ .HasColumnOrder(3)
+ .HasComment("ครั้งที่");
+
+ b.Property("PaymentEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(9)
+ .HasComment("วันสิ้นสุดชำระเงิน");
+
+ b.Property("PaymentStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(8)
+ .HasComment("วันเริ่มชำระเงิน");
+
+ b.Property("RegisterEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(11)
+ .HasComment("วันสิ้นสุดสมัครสอบ");
+
+ b.Property("RegisterStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(10)
+ .HasComment("วันเริ่มสมัครสอบ");
+
+ b.Property("Year")
+ .HasColumnType("int")
+ .HasColumnOrder(1)
+ .HasComment("ปีงบประมาณที่จัดสอบ");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ImportFileId");
+
+ b.ToTable("RecruitImports");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImportHistory", 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("Description")
+ .IsRequired()
+ .HasColumnType("longtext")
+ .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("RecruitImportId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitImportId");
+
+ b.ToTable("RecruitImportHistories");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", 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("Occupation")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Position")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("RecruitId")
+ .HasColumnType("char(36)");
+
+ b.Property("Telephone")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("WorkAge")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("Workplace")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitId");
+
+ b.ToTable("RecruitOccupations");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("AccountNumber")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("Amount")
+ .HasColumnType("decimal(65,30)");
+
+ b.Property("BankCode")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("ChequeNo")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("ChqueBankCode")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("CompanyCode")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ 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("CreditDebit")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("CustomerName")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ 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("PaymentId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("PaymentType")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("RecruitId")
+ .HasColumnType("char(36)");
+
+ b.Property("RefNo1")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("TellerId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("TermBranch")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("TextFile")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("TransDate")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("TransTime")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("RecruitId");
+
+ b.ToTable("RecruitPayments");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("ABStatus")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ 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("ExamId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("ExamStatus")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("FullA")
+ .HasColumnType("int");
+
+ b.Property("FullB")
+ .HasColumnType("int");
+
+ b.Property("FullC")
+ .HasColumnType("int");
+
+ 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("Major")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("PercentageA")
+ .HasColumnType("double");
+
+ b.Property("PercentageB")
+ .HasColumnType("double");
+
+ b.Property("PercentageC")
+ .HasColumnType("double");
+
+ b.Property("ScoreImportId")
+ .HasColumnType("char(36)");
+
+ b.Property("SumA")
+ .HasColumnType("int");
+
+ b.Property("SumAB")
+ .HasColumnType("int");
+
+ b.Property("SumB")
+ .HasColumnType("int");
+
+ b.Property("SumC")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ScoreImportId");
+
+ b.ToTable("RecruitScores");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", 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("ImportFileId")
+ .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("RecruitImportId")
+ .HasColumnType("char(36)");
+
+ b.Property("Year")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ImportFileId");
+
+ b.HasIndex("RecruitImportId")
+ .IsUnique();
+
+ b.ToTable("ScoreImports");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", "RecruitImport")
+ .WithMany("Recruits")
+ .HasForeignKey("RecruitImportId")
+ .OnDelete(DeleteBehavior.Cascade);
+
+ b.Navigation("RecruitImport");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ .WithMany("Addresses")
+ .HasForeignKey("RecruitId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Recruit");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ .WithMany("Certificates")
+ .HasForeignKey("RecruitId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Recruit");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "DocumentFile")
+ .WithMany()
+ .HasForeignKey("DocumentFileId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ .WithMany("Documents")
+ .HasForeignKey("RecruitId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("DocumentFile");
+
+ b.Navigation("Recruit");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ .WithMany("Educations")
+ .HasForeignKey("RecruitId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Recruit");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ .WithMany()
+ .HasForeignKey("ImportFileId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ImportFile");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImportHistory", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", "RecruitImport")
+ .WithMany("ImportHostories")
+ .HasForeignKey("RecruitImportId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("RecruitImport");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ .WithMany("Occupations")
+ .HasForeignKey("RecruitId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Recruit");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ .WithMany("Payments")
+ .HasForeignKey("RecruitId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Recruit");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", "ScoreImport")
+ .WithMany("Scores")
+ .HasForeignKey("ScoreImportId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ScoreImport");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ {
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ .WithMany()
+ .HasForeignKey("ImportFileId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", "RecruitImport")
+ .WithOne("ScoreImport")
+ .HasForeignKey("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", "RecruitImportId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ImportFile");
+
+ b.Navigation("RecruitImport");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ {
+ b.Navigation("Addresses");
+
+ b.Navigation("Certificates");
+
+ b.Navigation("Documents");
+
+ b.Navigation("Educations");
+
+ b.Navigation("Occupations");
+
+ b.Navigation("Payments");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ {
+ b.Navigation("ImportHostories");
+
+ b.Navigation("Recruits");
+
+ b.Navigation("ScoreImport")
+ .IsRequired();
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ {
+ b.Navigation("Scores");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/Migrations/20230424015003_Add Field PositionName.cs b/Migrations/20230424015003_Add Field PositionName.cs
new file mode 100644
index 0000000..5410a1f
--- /dev/null
+++ b/Migrations/20230424015003_Add Field PositionName.cs
@@ -0,0 +1,29 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace BMA.EHR.Recruit.Service.Migrations
+{
+ ///
+ public partial class AddFieldPositionName : Migration
+ {
+ ///
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.AddColumn(
+ name: "PositionName",
+ table: "Recruits",
+ type: "longtext",
+ nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4");
+ }
+
+ ///
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropColumn(
+ name: "PositionName",
+ table: "Recruits");
+ }
+ }
+}
diff --git a/Migrations/20230424053822_Add Field Exam Part Result.Designer.cs b/Migrations/20230424053822_Add Field Exam Part Result.Designer.cs
new file mode 100644
index 0000000..72effdc
--- /dev/null
+++ b/Migrations/20230424053822_Add Field Exam Part Result.Designer.cs
@@ -0,0 +1,1353 @@
+//
+using System;
+using BMA.EHR.Recruit.Service.Data;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace BMA.EHR.Recruit.Service.Migrations
+{
+ [DbContext(typeof(ApplicationDbContext))]
+ [Migration("20230424053822_Add Field Exam Part Result")]
+ partial class AddFieldExamPartResult
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "7.0.3")
+ .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+ modelBuilder.Entity("BMA.EHR.Recruit.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.Recruit.Service.Models.Recruits.Recruit", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("ApplyDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CitizenCardExpireDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("CitizenCardIssuer")
+ .IsRequired()
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)");
+
+ b.Property("CitizenId")
+ .IsRequired()
+ .HasMaxLength(13)
+ .HasColumnType("varchar(13)")
+ .HasComment("เลขประจำตัวประชาชน");
+
+ b.Property("CreatedAt")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(100)
+ .HasComment("สร้างข้อมูลเมื่อ");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime(6)");
+
+ 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("DateOfBirth")
+ .HasColumnType("datetime(6)");
+
+ b.Property("ExamId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("varchar(50)");
+
+ b.Property("FirstName")
+ .IsRequired()
+ .HasMaxLength(150)
+ .HasColumnType("varchar(150)");
+
+ b.Property("Gendor")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)");
+
+ b.Property("Isspecial")
+ .IsRequired()
+ .HasMaxLength(1)
+ .HasColumnType("varchar(1)");
+
+ b.Property