diff --git a/BMA.EHR.Recruit.Service.sln b/BMA.EHR.Recruit.Service.sln
index 95679a8..65a413c 100644
--- a/BMA.EHR.Recruit.Service.sln
+++ b/BMA.EHR.Recruit.Service.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33424.131
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BMA.EHR.Recruit.Service", "BMA.EHR.Recruit.Service.csproj", "{3FBBE410-D10A-4FF6-9BEE-F663381CCA22}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BMA.EHR.Recruit", "BMA.EHR.Recruit.csproj", "{3FBBE410-D10A-4FF6-9BEE-F663381CCA22}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/BMA.EHR.Recruit.Service.csproj b/BMA.EHR.Recruit.csproj
similarity index 98%
rename from BMA.EHR.Recruit.Service.csproj
rename to BMA.EHR.Recruit.csproj
index 4f3c513..eca7d61 100644
--- a/BMA.EHR.Recruit.Service.csproj
+++ b/BMA.EHR.Recruit.csproj
@@ -7,7 +7,6 @@
d45c95ce-6b9d-4aa7-aaaf-62fe8b792934
Linux
True
- BMA.EHR.Recruit.Service
diff --git a/ConfigureSwaggerOptions.cs b/ConfigureSwaggerOptions.cs
index 17da340..7284102 100644
--- a/ConfigureSwaggerOptions.cs
+++ b/ConfigureSwaggerOptions.cs
@@ -4,7 +4,7 @@ using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using System.Reflection;
-namespace BMA.EHR.Recruit.Service
+namespace BMA.EHR.Recruit
{
public class ConfigureSwaggerOptions : IConfigureNamedOptions
{
diff --git a/Controllers/BaseController.cs b/Controllers/BaseController.cs
index 89d5494..033134e 100644
--- a/Controllers/BaseController.cs
+++ b/Controllers/BaseController.cs
@@ -1,11 +1,12 @@
// using BMA.EHR.Core;
-using BMA.EHR.Recruit.Service.Responses;
-using BMA.EHR.Recruit.Service.Services;
+
+using BMA.EHR.Recruit.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Net;
+using BMA.EHR.Recruit.Responses;
-namespace BMA.EHR.Recruit.Service.Controllers
+namespace BMA.EHR.Recruit.Controllers
{
public class BaseController : ControllerBase
{
diff --git a/Controllers/RecruitController.cs b/Controllers/RecruitController.cs
index 73b39df..bbf38c3 100644
--- a/Controllers/RecruitController.cs
+++ b/Controllers/RecruitController.cs
@@ -1,13 +1,6 @@
using Amazon.S3.Model;
using BMA.EHR.MetaData.Service.Models;
using BMA.EHR.Profile.Service.Models.HR;
-using BMA.EHR.Recruit.Service.Core;
-using BMA.EHR.Recruit.Service.Data;
-using BMA.EHR.Recruit.Service.Extensions;
-using BMA.EHR.Recruit.Service.Models.Recruits;
-using BMA.EHR.Recruit.Service.Requests.Recruits;
-using BMA.EHR.Recruit.Service.Responses;
-using BMA.EHR.Recruit.Service.Services;
using BMA.EHR.Recurit.Service.Data;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@@ -31,8 +24,15 @@ using System.Globalization;
using OfficeOpenXml.Style;
using System.Drawing;
using System.Linq;
+using BMA.EHR.Recruit.Core;
+using BMA.EHR.Recruit.Data;
+using BMA.EHR.Recruit.Extensions;
+using BMA.EHR.Recruit.Models.Recruits;
+using BMA.EHR.Recruit.Requests.Recruits;
+using BMA.EHR.Recruit.Responses;
+using BMA.EHR.Recruit.Services;
-namespace BMA.EHR.Recruit.Service.Controllers
+namespace BMA.EHR.Recruit.Controllers
{
[Route("api/v{version:apiVersion}/recruit")]
[ApiVersion("1.0")]
@@ -53,6 +53,8 @@ namespace BMA.EHR.Recruit.Service.Controllers
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly ILogger _logger;
private readonly IConfiguration _configuration;
+ private readonly ImportJobQueue _importJobQueue;
+ private readonly ImportJobTracker _importJobTracker;
//private readonly DateTimeExtension;
#endregion
@@ -67,7 +69,9 @@ namespace BMA.EHR.Recruit.Service.Controllers
IHttpContextAccessor httpContextAccessor,
ILogger logger,
IConfiguration configuration,
- PermissionRepository permission
+ PermissionRepository permission,
+ ImportJobQueue importJobQueue,
+ ImportJobTracker importJobTracker
//DateTimeExtension extensions
)
{
@@ -80,6 +84,8 @@ namespace BMA.EHR.Recruit.Service.Controllers
_configuration = configuration;
_logger = logger;
_permission = permission;
+ _importJobQueue = importJobQueue;
+ _importJobTracker = importJobTracker;
//_extensions = extensions;
}
@@ -699,7 +705,6 @@ namespace BMA.EHR.Recruit.Service.Controllers
Directory.CreateDirectory(tmpDir);
var importFile = Path.Combine(tmpDir, $"c_{DateTime.Now.ToString("ddMMyyyyHHmmss")}.xlsx");
- var import_doc_id = "";
try
{
@@ -710,11 +715,13 @@ namespace BMA.EHR.Recruit.Service.Controllers
var file = Request.Form.Files[0];
var doc = await _minioService.UploadFileAsync(file);
- import_doc_id = doc.Id.ToString("D");
+ var import_doc_id = doc.Id.ToString("D");
var fileContent = (await _minioService.DownloadFileAsync(doc.Id)).FileContent;
+ System.IO.File.WriteAllBytes(importFile, fileContent);
+ fileContent = null;
- // สร้างรอบการบรรจุ โดยเอาเข้ามูลมาใส่จาก Request
+ // สร้างรอบการบรรจุ
var imported = new RecruitImport
{
Year = req.Year,
@@ -737,164 +744,27 @@ namespace BMA.EHR.Recruit.Service.Controllers
};
await _context.RecruitImports.AddAsync(imported);
- await _context.SaveChangesAsync(); // Save import first to get Id
+ await _context.SaveChangesAsync();
- // import datafile
- System.IO.File.WriteAllBytes(importFile, fileContent);
-
- using (var c_package = new ExcelPackage(new FileInfo(importFile)))
+ // Enqueue background job
+ var job = _importJobTracker.CreateJob(new ImportJobInfo
{
- // loop from sheet2 to end
-
- for (int i = 0; i < c_package.Workbook.Worksheets.Count; i++)
- {
- var workSheet = c_package.Workbook.Worksheets[i];
- var totalRows = workSheet.Dimension.Rows;
- var cols = workSheet.GetHeaderColumns();
-
- int row = 2;
- int batchCount = 0;
- const int batchSize = 500;
-
- while (row <= totalRows)
- {
- var cell1 = workSheet?.Cells[row, 1]?.GetValue();
- if (cell1 == "" || cell1 == null) break;
-
- var r = new Models.Recruits.Recruit();
- r.ExamId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ExamID)]?.GetValue();
- r.CitizenId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PersonalID)]?.GetValue();
- r.Prefix = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Prefix)]?.GetValue();
- r.FirstName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.FirstName)]?.GetValue();
- r.LastName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.LastName)]?.GetValue();
- r.Gendor = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Gender)]?.GetValue();
- r.National = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.National)]?.GetValue().IsNull("");
- r.Race = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Race)]?.GetValue().IsNull("");
- r.Religion = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Religion)]?.GetValue().IsNull("");
- r.DateOfBirth = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.DateOfBirth)]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-"));
- r.Marry = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Marry)]?.GetValue();
- r.Isspecial = "N";
- 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("");
- r.PositionType = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PositionType)]?.GetValue().IsNull("");
- r.PositionLevel = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PositionLevel)]?.GetValue().IsNull("");
-
-
- // address
- r.Addresses.Add(new RecruitAddress()
- {
- Address = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Address)]?.GetValue() ?? "",
- Moo = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Moo)]?.GetValue() ?? "",
- Soi = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Soi)]?.GetValue() ?? "",
- Road = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Road)]?.GetValue() ?? "",
- District = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.District)]?.GetValue() ?? "",
- Amphur = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Amphur)]?.GetValue() ?? "",
- Province = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Province)]?.GetValue() ?? "",
- ZipCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ZipCode)]?.GetValue() ?? "",
- Telephone = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Telephone)]?.GetValue() ?? "",
- Mobile = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Mobile)]?.GetValue() ?? "",
- Address1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Address1)]?.GetValue() ?? "",
- Moo1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Moo1)]?.GetValue() ?? "",
- Soi1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Soi1)]?.GetValue() ?? "",
- Road1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Road1)]?.GetValue() ?? "",
- District1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.District1)]?.GetValue() ?? "",
- Amphur1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Amphur1)]?.GetValue() ?? "",
- Province1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Province1)]?.GetValue() ?? "",
- ZipCode1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ZipCode1)]?.GetValue() ?? "",
- });
-
- // payment
- r.Payments.Add(new RecruitPayment()
- {
- PaymentId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.PaymentID)]?.GetValue() ?? "",
- CompanyCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CompanyCode)]?.GetValue() ?? "",
- TextFile = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TextFile)]?.GetValue() ?? "",
- BankCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.BankCode)]?.GetValue() ?? "",
- AccountNumber = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.AccouontNumer)]?.GetValue() ?? "",
- TransDate = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TransDate)]?.GetValue() ?? "",
- TransTime = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TransTime)]?.GetValue() ?? "",
- CustomerName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CustomerName)]?.GetValue() ?? "",
- RefNo1 = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.RefNo1)]?.GetValue() ?? "",
- TermBranch = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TermBranch)]?.GetValue() ?? "",
- TellerId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.TellerID)]?.GetValue() ?? "",
- CreditDebit = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CreditDebit)]?.GetValue() ?? "",
- PaymentType = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Type)]?.GetValue(),
- ChequeNo = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ChequeNo)]?.GetValue() ?? "",
- Amount = (decimal)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Amount)]?.GetValue(),
- ChqueBankCode = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.ChqBankCode)]?.GetValue() ?? ""
- });
-
- // occupation
- r.Occupations.Add(new RecruitOccupation()
- {
- Occupation = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Occupation)]?.GetValue() ?? "",
- Position = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Position)]?.GetValue() ?? "",
- Workplace = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Workplace)]?.GetValue() ?? "",
- Telephone = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.WorkplaceTelephone)]?.GetValue() ?? "",
- WorkAge = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.WorkAge)]?.GetValue() ?? "",
- });
-
- // certificate
- r.Certificates.Add(new RecruitCertificate()
- {
- CertificateNo = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateNo)]?.GetValue() ?? "",
- Description = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateDesc)]?.GetValue() ?? "",
- IssueDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateIssueDate)]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-")),
- ExpiredDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.CertificateExpireDate)]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-"))
- });
-
- r.Educations.Add(new RecruitEducation()
- {
- Degree = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Degree)]?.GetValue() ?? "",
- Major = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.Major)]?.GetValue() ?? "",
- MajorGroupId = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.MajorGroupID)]?.GetValue() ?? "",
- MajorGroupName = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.MajorGroupName)]?.GetValue() ?? "",
- University = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.University)]?.GetValue() ?? "",
- GPA = (double)workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.GPA)]?.GetValue(),
- Specialist = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.SpecialList)]?.GetValue() ?? "",
- HighDegree = workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.HighDegree)]?.GetValue() ?? "",
- BachelorDate = Convert.ToDateTime(workSheet?.Cells[row, GetColumnIndex(cols, CandidateFileHeader.BachelorDate)]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-"))
- });
-
- r.RecruitImport = imported;
- _context.Recruits.Add(r);
-
- //imported.Recruits.Add(r);
- row++;
- batchCount++;
-
- // Batch save to prevent OutOfMemoryException on large imports
- if (batchCount >= batchSize)
- {
- _context.SaveChanges();
- _context.ChangeTracker.Clear();
- // Re-attach the import entity as Unchanged after clearing the tracker
- _context.Entry(imported).State = EntityState.Unchanged;
- batchCount = 0;
- }
-
- }
- }
- }
-
- // Save remaining records in the last batch
- _context.SaveChanges();
-
- return Success();
+ JobType = ImportJobType.CandidateFile,
+ ImportFile = importFile,
+ RecruitImportId = imported.Id,
+ ImportDocId = import_doc_id,
+ UserId = UserId,
+ FullName = FullName,
+ Request = req,
+ });
+ await _importJobQueue.EnqueueAsync(job);
+ return Success(new { jobId = job.JobId, status = "queued" });
}
catch (Exception ex)
{
- await _minioService.DeleteFileAsync(Guid.Parse(import_doc_id));
return Error(ex);
}
- finally
- {
- if (System.IO.File.Exists(importFile))
- System.IO.File.Delete(importFile);
- }
}
///
@@ -1033,7 +903,6 @@ namespace BMA.EHR.Recruit.Service.Controllers
Directory.CreateDirectory(tmpDir);
var importFile = Path.Combine(tmpDir, $"c_{DateTime.Now.ToString("ddMMyyyyHHmmss")}.xlsx");
- var import_doc_id = "";
try
{
@@ -1046,16 +915,6 @@ namespace BMA.EHR.Recruit.Service.Controllers
.Include(x => x.ImportHostories)
.Include(x => x.ImportFile)
.Include(x => x.Recruits)
- .ThenInclude(x => x.Addresses)
- .Include(x => x.Recruits)
- .ThenInclude(x => x.Occupations)
- .Include(x => x.Recruits)
- .ThenInclude(x => x.Certificates)
- .Include(x => x.Recruits)
- .ThenInclude(x => x.Educations)
- .Include(x => x.Recruits)
- .ThenInclude(x => x.Payments)
- .Include(x => x.Recruits)
.FirstOrDefaultAsync(x => x.Id == id);
if (imported == null)
@@ -1063,225 +922,36 @@ namespace BMA.EHR.Recruit.Service.Controllers
if (imported.Recruits != null)
{
- // remove old score data
_context.Recruits.RemoveRange(imported.Recruits);
await _context.SaveChangesAsync();
}
var file = Request.Form.Files[0];
var doc = await _minioService.UploadFileAsync(file);
- import_doc_id = doc.Id.ToString("D");
+ var import_doc_id = doc.Id.ToString("D");
var fileContent = (await _minioService.DownloadFileAsync(doc.Id)).FileContent;
-
- // สร้างรอบการบรรจุ โดยเอาเข้ามูลมาใส่จาก Request
- imported.ImportHostories.Add(new RecruitImportHistory
- {
- Description = "นำเข้าข้อมูลผู้สมัครสอบแข่งขัน",
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator",
- });
-
- //await _context.RecruitImports.AddAsync(imported);
-
- // import datafile
System.IO.File.WriteAllBytes(importFile, fileContent);
+ fileContent = null;
- using (var c_package = new ExcelPackage(new FileInfo(importFile)))
+ // Enqueue background job
+ var job = _importJobTracker.CreateJob(new ImportJobInfo
{
- // loop from sheet2 to end
-
- for (int i = 0; i < c_package.Workbook.Worksheets.Count; i++)
- {
- var workSheet = c_package.Workbook.Worksheets[i];
- var totalRows = workSheet.Dimension.Rows;
- var cols = workSheet.GetHeaderColumns();
-
- int row = 2;
- int batchCount = 0;
- const int batchSize = 500;
-
- while (row <= totalRows)
- {
- var cell1 = workSheet?.Cells[row, 1]?.GetValue();
- if (cell1 == "" || cell1 == null) break;
-
- var r = new Models.Recruits.Recruit();
- r.ExamId = workSheet?.Cells[row, 1]?.GetValue() ?? "";
- r.PositionName = workSheet?.Cells[row, 3]?.GetValue() ?? "";
- r.HddPosition = workSheet?.Cells[row, 4]?.GetValue() ?? "";
- r.Prefix = workSheet?.Cells[row, 5]?.GetValue() == "อื่น ๆ" ? workSheet?.Cells[row, 6]?.GetValue() ?? "" : workSheet?.Cells[row, 5]?.GetValue() ?? "";
- r.FirstName = workSheet?.Cells[row, 7]?.GetValue() ?? "";
- r.LastName = workSheet?.Cells[row, 8]?.GetValue() ?? "";
- r.Gendor = workSheet?.Cells[row, 98]?.GetValue() ?? "";
- r.National = workSheet?.Cells[row, 9]?.GetValue() ?? "";
- r.Race = "";
- r.Religion = workSheet?.Cells[row, 10]?.GetValue() ?? "";
- r.DateOfBirth = !string.IsNullOrWhiteSpace(workSheet?.Cells[row, 11]?.GetValue()) ? _recruitService.CheckDateTime(workSheet?.Cells[row, 11]?.GetValue() ?? "", "dd/MM/yyyy") : null;
- r.CitizenId = workSheet?.Cells[row, 12]?.GetValue() ?? "";
- r.typeTest = workSheet?.Cells[row, 13]?.GetValue() ?? "";
- r.Marry = "";
- r.Isspecial = "N";
- r.CitizenCardExpireDate = null;
- r.ModifiedDate = null;
- r.ApplyDate = !string.IsNullOrWhiteSpace(workSheet?.Cells[row, 87]?.GetValue()) ? _recruitService.CheckDateTime(workSheet?.Cells[row, 87]?.GetValue() ?? "", "dd/MM/yyyy") : null;
- r.PositionType = "";
- r.PositionLevel = "";
- r.CreatedAt = DateTime.Now;
- r.CreatedUserId = UserId ?? "";
- r.CreatedFullName = FullName ?? "System Administrator";
- r.LastUpdatedAt = DateTime.Now;
- r.LastUpdateUserId = UserId ?? "";
- r.LastUpdateFullName = FullName ?? "System Administrator";
-
- // education
- r.Educations.Add(new RecruitEducation()
- {
- Degree = workSheet?.Cells[row, 18]?.GetValue() ?? "",
- Major = workSheet?.Cells[row, 19]?.GetValue() == "อื่น ๆ" ? workSheet?.Cells[row, 20]?.GetValue() ?? "" : workSheet?.Cells[row, 19]?.GetValue() ?? "",
- MajorGroupId = "",
- MajorGroupName = "",
- University = workSheet?.Cells[row, 21]?.GetValue() == "อื่น ๆ" ? workSheet?.Cells[row, 22]?.GetValue() ?? "" : workSheet?.Cells[row, 21]?.GetValue() ?? "",
- GPA = (double)workSheet?.Cells[row, 26]?.GetValue(),
- Specialist = "",
- HighDegree = workSheet?.Cells[row, 27]?.GetValue() ?? "",
- BachelorDate = !string.IsNullOrWhiteSpace(workSheet?.Cells[row, 25]?.GetValue()) ? _recruitService.CheckDateTime(workSheet?.Cells[row, 25]?.GetValue() ?? "", "dd/MM/yyyy") : null,
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator"
- });
-
- // occupation
- r.Occupations.Add(new RecruitOccupation()
- {
- Occupation = workSheet?.Cells[row, 33]?.GetValue() == "อื่น ๆ" ? workSheet?.Cells[row, 34]?.GetValue() ?? "" : workSheet?.Cells[row, 33]?.GetValue() ?? "",
- Position = workSheet?.Cells[row, 37]?.GetValue() ?? "",
- Workplace = $"{(workSheet?.Cells[row, 36]?.GetValue() ?? "")} {(workSheet?.Cells[row, 35]?.GetValue() ?? "")}",
- Telephone = workSheet?.Cells[row, 9999]?.GetValue() ?? "",
- WorkAge = workSheet?.Cells[row, 9999]?.GetValue() ?? "",
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator"
- });
-
- // address
- r.Addresses.Add(new RecruitAddress()
- {
- Address = $"{(workSheet?.Cells[row, 49]?.GetValue() ?? "")} {(workSheet?.Cells[row, 50]?.GetValue() ?? "")}",
- Moo = workSheet?.Cells[row, 51]?.GetValue() ?? "",
- Soi = workSheet?.Cells[row, 52]?.GetValue() ?? "",
- Road = workSheet?.Cells[row, 53]?.GetValue() ?? "",
- District = workSheet?.Cells[row, 54]?.GetValue() ?? "",
- Amphur = workSheet?.Cells[row, 55]?.GetValue() ?? "",
- Province = workSheet?.Cells[row, 56]?.GetValue() ?? "",
- ZipCode = (workSheet?.Cells[row, 57]?.GetValue() ?? "").Trim(),
- Telephone = workSheet?.Cells[row, 58]?.GetValue() ?? "",
- Mobile = "",
- Address1 = $"{(workSheet?.Cells[row, 61]?.GetValue() ?? "")} {(workSheet?.Cells[row, 62]?.GetValue() ?? "")}",
- Moo1 = workSheet?.Cells[row, 63]?.GetValue() ?? "",
- Soi1 = workSheet?.Cells[row, 64]?.GetValue() ?? "",
- Road1 = workSheet?.Cells[row, 65]?.GetValue() ?? "",
- District1 = workSheet?.Cells[row, 66]?.GetValue() ?? "",
- Amphur1 = workSheet?.Cells[row, 67]?.GetValue() ?? "",
- Province1 = workSheet?.Cells[row, 68]?.GetValue() ?? "",
- ZipCode1 = (workSheet?.Cells[row, 69]?.GetValue() ?? "").Trim(),
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator"
- });
-
- // payment
- r.Payments.Add(new RecruitPayment()
- {
- PaymentId = workSheet?.Cells[row, 104]?.GetValue() ?? "",
- CompanyCode = workSheet?.Cells[row, 105]?.GetValue() ?? "",
- TextFile = workSheet?.Cells[row, 106]?.GetValue() ?? "",
- BankCode = workSheet?.Cells[row, 107]?.GetValue() ?? "",
- AccountNumber = workSheet?.Cells[row, 108]?.GetValue() ?? "",
- TransDate = workSheet?.Cells[row, 109]?.GetValue() ?? "",
- TransTime = workSheet?.Cells[row, 110]?.GetValue() ?? "",
- CustomerName = workSheet?.Cells[row, 111]?.GetValue() ?? "",
- RefNo1 = workSheet?.Cells[row, 112]?.GetValue() ?? "",
- TermBranch = workSheet?.Cells[row, 113]?.GetValue() ?? "",
- TellerId = workSheet?.Cells[row, 114]?.GetValue() ?? "",
- CreditDebit = workSheet?.Cells[row, 115]?.GetValue() ?? "",
- PaymentType = workSheet?.Cells[row, 116]?.GetValue() ?? "",
- ChequeNo = workSheet?.Cells[row, 117]?.GetValue() ?? "",
- Amount = (decimal)workSheet?.Cells[row, 118]?.GetValue(),
- ChqueBankCode = workSheet?.Cells[row, 119]?.GetValue() ?? "",
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator"
- });
- /*Comment ข้อมูลใบประกอบวิชาชีพ เพราะในไฟล์นำเข้ายังไม่มีคอลัมน์ที่ระบุข้อมูลส่วนนี้*/
- //// certificate
- //r.Certificates.Add(new RecruitCertificate()
- //{
- // CertificateNo = workSheet?.Cells[row, 9999]?.GetValue() ?? "",
- // Description = workSheet?.Cells[row, 9999]?.GetValue() ?? "",
- // IssueDate = Convert.ToDateTime(workSheet?.Cells[row, 9999]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-")),
- // ExpiredDate = Convert.ToDateTime(workSheet?.Cells[row, 9999]?.GetValue().ToDateTime(DateTimeFormat.Ymd, "-")),
- // CreatedAt = DateTime.Now,
- // CreatedUserId = UserId ?? "",
- // CreatedFullName = FullName ?? "System Administrator",
- // LastUpdatedAt = DateTime.Now,
- // LastUpdateUserId = UserId ?? "",
- // LastUpdateFullName = FullName ?? "System Administrator"
- //});
-
- r.RecruitImport = imported;
- _context.Recruits.Add(r);
-
- //imported.Recruits.Add(r);
- row++;
- batchCount++;
-
- // Batch save to prevent OutOfMemoryException on large imports
- if (batchCount >= batchSize)
- {
- _context.SaveChanges();
- _context.ChangeTracker.Clear();
- // Re-attach the import entity as Unchanged after clearing the tracker
- _context.Entry(imported).State = EntityState.Unchanged;
- batchCount = 0;
- }
-
- }
- }
- }
-
- // Save remaining records in the last batch
- _context.SaveChanges();
-
- return Success();
+ JobType = ImportJobType.CandidateFileById,
+ ImportFile = importFile,
+ RecruitImportId = id,
+ ImportDocId = import_doc_id,
+ UserId = UserId,
+ FullName = FullName,
+ });
+ await _importJobQueue.EnqueueAsync(job);
+ return Success(new { jobId = job.JobId, status = "queued" });
}
catch (Exception ex)
{
- await _minioService.DeleteFileAsync(Guid.Parse(import_doc_id));
return Error(ex);
}
- finally
- {
- if (System.IO.File.Exists(importFile))
- System.IO.File.Delete(importFile);
- }
}
#endregion
@@ -1324,209 +994,34 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
var rec_import = await _context.RecruitImports.AsQueryable()
- .Include(x => x.ScoreImport)
- .ThenInclude(x => x.Scores)
- .Include(x => x.ImportHostories)
.FirstOrDefaultAsync(x => x.Id == id);
if (rec_import == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
- if (rec_import.ScoreImport != null)
- {
- // remove old score data
- if (rec_import.ScoreImport.Scores != null)
- {
- _context.RecruitScores.RemoveRange(rec_import.ScoreImport.Scores);
- await _context.SaveChangesAsync();
- }
- }
-
var file = Request.Form.Files[0];
- var doc = await _minioService.UploadFileAsync(file);
- import_doc_id = doc.Id.ToString("D");
-
- Console.WriteLine($"file id = {import_doc_id}");
-
- var fileContent = (await _minioService.DownloadFileAsync(doc.Id)).FileContent;
-
- // create import history
- rec_import.ImportHostories.Add(new RecruitImportHistory
+ using (var stream = new FileStream(importFile, FileMode.Create))
{
- Description = "นำเข้าข้อมูลผลคะแนนสอบ",
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator",
+ await file.CopyToAsync(stream);
+ }
+
+ var job = _importJobTracker.CreateJob(new ImportJobInfo
+ {
+ JobType = ImportJobType.ScoreFile,
+ ImportFile = importFile,
+ RecruitImportId = id,
+ ImportDocId = import_doc_id,
+ UserId = UserId,
+ FullName = FullName,
});
+ await _importJobQueue.EnqueueAsync(job);
- // create new file import
- var imported = new ScoreImport
- {
- Year = rec_import.Year,
- ImportFile = doc,
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator",
- Scores = new List()
- };
-
- // preload recruits ทั้งหมดของครั้งเดียว และ Group ExamId เอาเฉพาะ key ที่ไม่ซ้ำ
- var recruitsDict = await _context.Recruits
- .Where(x => x.RecruitImport.Id == rec_import.Id)
- .GroupBy(x => x.ExamId)
- .Where(g => g.Count() == 1)
- .Select(g => g.First())
- .ToDictionaryAsync(x => x.ExamId, x => x);
-
- // import datafile
- System.IO.File.WriteAllBytes(importFile, fileContent);
-
- using (var c_package = new ExcelPackage(new FileInfo(importFile)))
- {
- for (int i = 0; i < c_package.Workbook.Worksheets.Count; i++)
- {
- var workSheet = c_package.Workbook.Worksheets[i];
- //var totalRows = workSheet.Dimension.Rows;
- var cols = workSheet.GetHeaderColumns();
-
- int row = 8;
- int batchCount = 0;
- const int batchSize = 500;
- var endRow = workSheet.Dimension.End.Row; // แถวสุดท้ายที่มีข้อมูล
- while (row <= endRow)
- {
- var cell1 = workSheet?.Cells[row, 1]?.GetValue();
- if (cell1 == "" || cell1 == null) break;
-
- var r = new RecruitScore();
-
- #region นำเข้าผลคะแนนสอบแข่งขัน old
-
- //r.ExamId = workSheet?.Cells[row, 2]?.GetValue();
-
- //r.FullA = (int)workSheet?.Cells[7, 7]?.GetValue().Replace("(", "").Replace(")", "").Replace("คะแนน", "").Trim().ToInteger();
- //r.SumA = workSheet?.Cells[row, 7]?.GetValue() == "ขส." ? 0.00 : (double)workSheet?.Cells[row, 7]?.GetValue();
- //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.00 : (double)workSheet?.Cells[row, 12]?.GetValue();
- //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.00 : (double)workSheet?.Cells[row, 15]?.GetValue();
- //r.ABStatus = workSheet?.Cells[row, 17]?.GetValue();
-
- //r.FullC = (int)workSheet?.Cells[7, 20]?.GetValue().Replace("(", "").Replace(")", "").Replace("คะแนน", "").Trim().ToInteger();
- //r.SumC = workSheet?.Cells[row, 20]?.GetValue() == "ขส." ? 0.00 : (double)workSheet?.Cells[row, 20]?.GetValue();
- //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.Number = workSheet?.Cells[row, 25]?.GetValue() ?? ""; // ตัดนำเข้า ลำดับที่สอบได้ เพราะจะแยกเป็นอีกส่วน #1787
-
- //r.Major = workSheet.Name;
-
- #endregion
-
- r.ExamId = workSheet?.Cells[row, 2]?.GetValue();
-
- // ใช้ dictionary lookup แทน query DB ทีละรอบ
- if (!string.IsNullOrEmpty(r.ExamId) && recruitsDict.TryGetValue(r.ExamId, out var recruit))
- {
- r.CitizenId = workSheet?.Cells[row, 3]?.GetValue()?.Trim();
-
- // ภาคความรู้ความสามารถที่ใช้เฉพาะตำแหน่ง
- r.FullA = 200;
- r.SumA = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 5]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 5].GetValue(), 2);
- r.PercentageA = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 6]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 6].GetValue(), 2);
- r.AStatus = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 7]?.GetValue()) ? "" : workSheet?.Cells[row, 7]?.GetValue();
- r.SumAB = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 5]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 5].GetValue(), 2);
- r.ABStatus = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 7]?.GetValue()) ? "" : workSheet?.Cells[row, 7]?.GetValue();
-
- // ภาคความเหมาะสมกับตำแหน่ง
- r.FullC = 50;
- r.SumC = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 8]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 8].GetValue(), 2);
- r.FullD = 50;
- r.SumD = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 9]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 9].GetValue(), 2);
- r.SumCD = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 10]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 10].GetValue(), 2);
- r.PercentageC = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 11]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 11].GetValue(), 2);
- r.CStatus = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 12]?.GetValue()) ? "" : workSheet?.Cells[row, 12]?.GetValue();
- r.FullScore = 300;
- r.TotalScore = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 13]?.GetValue()) ? 0.00 : Math.Round(workSheet.Cells[row, 13].GetValue(), 2);
-
- var examStatusCol7 = workSheet?.Cells[row, 7]?.GetValue()?.Trim();
- var examStatusCol14 = workSheet?.Cells[row, 14]?.GetValue()?.Trim();
- r.ExamStatus =
- examStatusCol7 == "ขาดสอบ" ? "ขส." :
- examStatusCol14 == "ได้" ? "ผ่าน" :
- examStatusCol14 == "ตก" ? "ไม่ผ่าน" : "-";
-
- r.RemarkScore = string.IsNullOrWhiteSpace(workSheet?.Cells[row, 15]?.GetValue()) ? string.Empty : workSheet?.Cells[row, 15]?.GetValue();
-
- var examAttr = workSheet?.Cells[row, 16]?.GetValue()?.Trim();
- r.ExamAttribute =
- examAttr == "ผ่าน" ? "มีคุณสมบัติ" :
- examAttr == "ไม่ผ่าน" ? "ไม่มีคุณสมบัติ" : "";
-
- r.Major = workSheet.Name;
-
- r.CreatedAt = DateTime.Now;
- r.CreatedUserId = UserId ?? "";
- r.CreatedFullName = FullName ?? "System Administrator";
- r.LastUpdatedAt = DateTime.Now;
- r.LastUpdateUserId = UserId ?? "";
- r.LastUpdateFullName = FullName ?? "System Administrator";
-
- imported.Scores.Add(r);
- }
-
- row++;
- batchCount++;
-
- // Batch save to prevent OutOfMemoryException on large imports
- if (batchCount >= batchSize)
- {
- rec_import.ScoreImport = imported;
- await _context.SaveChangesAsync();
- _context.ChangeTracker.Clear();
- // Re-attach entities after clearing the tracker
- _context.Attach(rec_import);
- _context.Attach(imported);
- imported.Scores.Clear();
- batchCount = 0;
- }
-
- } // end of sheet loop
- } // end of all file loop
- }
-
- // Save remaining records in the last batch
- if (imported.Scores.Count > 0)
- {
- rec_import.ScoreImport = imported;
- await _context.SaveChangesAsync();
- }
-
- return Success();
-
+ return Success(new { jobId = job.JobId, status = "queued" });
}
catch (Exception ex)
{
- //await _minioService.DeleteFileAsync(Guid.Parse(import_doc_id));
return Error(ex);
}
- finally
- {
- if (System.IO.File.Exists(importFile))
- System.IO.File.Delete(importFile);
- }
}
#endregion
@@ -1555,6 +1050,12 @@ namespace BMA.EHR.Recruit.Service.Controllers
return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden);
}
+ var tmpDir = Path.Combine(_webHostEnvironment.ContentRootPath, "tmp");
+ if (!Directory.Exists(tmpDir))
+ Directory.CreateDirectory(tmpDir);
+
+ var importFile = Path.Combine(tmpDir, $"r_{DateTime.Now.ToString("ddMMyyyyHHmmss")}.xlsx");
+
try
{
if (Request.Form.Files == null || Request.Form.Files.Count == 0)
@@ -1563,103 +1064,28 @@ namespace BMA.EHR.Recruit.Service.Controllers
}
var rec_import = await _context.RecruitImports.AsQueryable()
- .Include(x => x.ScoreImport)
- .ThenInclude(x => x.Scores)
.FirstOrDefaultAsync(x => x.Id == id);
if (rec_import == null)
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
- // update ฟิลด์ลำดับที่สอบได้และหมายเหตุจากลำดับที่สอบได้อันเก่าก่อน
- if (rec_import.ScoreImport != null && rec_import.ScoreImport.Scores != null)
- {
- var _oldScores = rec_import.ScoreImport.Scores
- .Where(x => !string.IsNullOrEmpty(x.Number))
- .ToList();
- if (_oldScores.Count > 0)
- {
- foreach (var x in _oldScores)
- {
- x.Number = string.Empty;
- x.RemarkExamOrder = string.Empty;
- }
- await _context.SaveChangesAsync();
- }
- }
-
- // create import history
- rec_import.ImportHostories.Add(new RecruitImportHistory
- {
- Description = "นำเข้าข้อมูลผลการสอบ",
- CreatedAt = DateTime.Now,
- CreatedUserId = UserId ?? "",
- CreatedFullName = FullName ?? "System Administrator",
- LastUpdatedAt = DateTime.Now,
- LastUpdateUserId = UserId ?? "",
- LastUpdateFullName = FullName ?? "System Administrator",
- });
-
- // preload score
- var score = rec_import.ScoreImport.Scores
- .Where(s => !string.IsNullOrEmpty(s.ExamId))
- .GroupBy(x => x.ExamId)
- .Where(g => g.Count() == 1)
- .Select(g => g.First())
- .ToDictionary(s => s.ExamId, s => s);
-
- // ถ้าไม่มีผลคะแนนสอบแข่งขันให้จบการทำงาน
- if (score.Count == 0) return Success();
-
var file = Request.Form.Files[0];
- using (var stream = file.OpenReadStream())
- using (var c_package = new ExcelPackage(stream))
+ using (var stream = new FileStream(importFile, FileMode.Create))
{
- foreach (var workSheet in c_package.Workbook.Worksheets)
- {
- //var totalRows = workSheet.Dimension.Rows;
- int row = 7; // เริ่มที่ row 7 ตามตัวอย่างไฟล์
- int batchCount = 0;
- const int batchSize = 500;
- var endRow = workSheet.Dimension.End.Row; // แถวสุดท้ายที่มีข้อมูล
-
- while (row <= endRow)
- {
- var examId = workSheet?.Cells[row, 2]?.GetValue();
- if (string.IsNullOrWhiteSpace(examId))
- {
- row++;
- continue;
- }
-
- if (score.TryGetValue(examId, out var existingScore))
- {
- existingScore.Number = workSheet?.Cells[row, 1]?.GetValue();
- existingScore.RemarkExamOrder = workSheet?.Cells[row, 4]?.GetValue() ?? string.Empty;
- existingScore.LastUpdatedAt = DateTime.Now;
- existingScore.LastUpdateUserId = UserId ?? "";
- existingScore.LastUpdateFullName = FullName ?? "System Administrator";
- batchCount++;
- }
-
- row++;
-
- // Batch save to prevent OutOfMemoryException on large imports
- if (batchCount >= batchSize)
- {
- await _context.SaveChangesAsync();
- _context.ChangeTracker.Clear();
- // Re-attach the import entity as Unchanged after clearing the tracker
- _context.Entry(rec_import).State = EntityState.Unchanged;
- batchCount = 0;
- }
- }
- }
+ await file.CopyToAsync(stream);
}
- // Save remaining records in the last batch
- await _context.SaveChangesAsync();
- return Success();
+ var job = _importJobTracker.CreateJob(new ImportJobInfo
+ {
+ JobType = ImportJobType.ResultFile,
+ ImportFile = importFile,
+ RecruitImportId = id,
+ UserId = UserId,
+ FullName = FullName,
+ });
+ await _importJobQueue.EnqueueAsync(job);
+ return Success(new { jobId = job.JobId, status = "queued" });
}
catch (Exception ex)
{
@@ -1669,6 +1095,37 @@ namespace BMA.EHR.Recruit.Service.Controllers
#endregion
+ #region " Import Status "
+
+ ///
+ /// ตรวจสอบสถานะการนำเข้าข้อมูล
+ ///
+ /// รหัสงานนำเข้า
+ ///
+ [HttpGet("import/status/{jobId}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
+ public ActionResult GetImportStatus(string jobId)
+ {
+ var job = _importJobTracker.GetJob(jobId);
+ if (job == null)
+ return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
+
+ return Success(new
+ {
+ jobId = job.JobId,
+ jobType = job.JobType.ToString(),
+ status = job.Status.ToString(),
+ processedCount = job.ProcessedCount,
+ totalCount = job.TotalCount,
+ errorMessage = job.ErrorMessage,
+ createdAt = job.CreatedAt,
+ completedAt = job.CompletedAt,
+ });
+ }
+
+ #endregion
+
#region " Exam Information "
///
diff --git a/Core/DateTimeFixConverter.cs b/Core/DateTimeFixConverter.cs
index 60c8af6..b52dd56 100644
--- a/Core/DateTimeFixConverter.cs
+++ b/Core/DateTimeFixConverter.cs
@@ -1,7 +1,7 @@
using System.Text.Json;
using System.Text.Json.Serialization;
-namespace BMA.EHR.Recruit.Service.Core
+namespace BMA.EHR.Recruit.Core
{
public class DateTimeFixConverter : JsonConverter
{
diff --git a/Core/GlobalMessages.cs b/Core/GlobalMessages.cs
index b37b5e8..aa496da 100644
--- a/Core/GlobalMessages.cs
+++ b/Core/GlobalMessages.cs
@@ -1,4 +1,4 @@
-namespace BMA.EHR.Recruit.Service.Core
+namespace BMA.EHR.Recruit.Core
{
public class GlobalMessages
{
diff --git a/Core/RequestLoggingMiddleware.cs b/Core/RequestLoggingMiddleware.cs
index 8ffc72f..27013fd 100644
--- a/Core/RequestLoggingMiddleware.cs
+++ b/Core/RequestLoggingMiddleware.cs
@@ -8,7 +8,7 @@ using System.Text.Encodings.Web;
using System.Text.Json;
using JsonSerializer = System.Text.Json.JsonSerializer;
-namespace BMA.EHR.Recruit.Service.Core
+namespace BMA.EHR.Recruit.Core
{
public class RequestLoggingMiddleware
{
diff --git a/Data/ApplicationDbContext.cs b/Data/ApplicationDbContext.cs
index 2c64fb6..81e4fd6 100644
--- a/Data/ApplicationDbContext.cs
+++ b/Data/ApplicationDbContext.cs
@@ -1,8 +1,8 @@
-using BMA.EHR.Recruit.Service.Models.Documents;
-using BMA.EHR.Recruit.Service.Models.Recruits;
+using BMA.EHR.Recruit.Models.Documents;
+using BMA.EHR.Recruit.Models.Recruits;
using Microsoft.EntityFrameworkCore;
-namespace BMA.EHR.Recruit.Service.Data
+namespace BMA.EHR.Recruit.Data
{
public class ApplicationDbContext : DbContext
{
diff --git a/Extensions/DataReaderExtension.cs b/Extensions/DataReaderExtension.cs
index 4768e5a..5b8d194 100644
--- a/Extensions/DataReaderExtension.cs
+++ b/Extensions/DataReaderExtension.cs
@@ -1,6 +1,6 @@
using System.Data.Common;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class DataReaderExtension
{
diff --git a/Extensions/DateTimeExtension.cs b/Extensions/DateTimeExtension.cs
index df6379d..a5b524a 100644
--- a/Extensions/DateTimeExtension.cs
+++ b/Extensions/DateTimeExtension.cs
@@ -2,7 +2,7 @@ using System;
using System.Globalization;
using System.Text;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class DateTimeExtension
{
diff --git a/Extensions/DoubleExtension.cs b/Extensions/DoubleExtension.cs
index 0483704..255bb66 100644
--- a/Extensions/DoubleExtension.cs
+++ b/Extensions/DoubleExtension.cs
@@ -1,7 +1,7 @@
using System;
using System.Text;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class DoubleExtension
{
diff --git a/Extensions/ExcelWorksheetExtension.cs b/Extensions/ExcelWorksheetExtension.cs
index 4d30d04..fcd6524 100644
--- a/Extensions/ExcelWorksheetExtension.cs
+++ b/Extensions/ExcelWorksheetExtension.cs
@@ -2,7 +2,7 @@
using System;
using System.Collections.Generic;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class ExcelWorksheetExtension
{
diff --git a/Extensions/IntegerExtension.cs b/Extensions/IntegerExtension.cs
index 555eb68..2a465a1 100644
--- a/Extensions/IntegerExtension.cs
+++ b/Extensions/IntegerExtension.cs
@@ -1,7 +1,7 @@
using System.Text;
// using GreatFriends.ThaiBahtText;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class IntegerExtension
{
diff --git a/Extensions/ListExtension.cs b/Extensions/ListExtension.cs
index d8b8f95..3ca9307 100644
--- a/Extensions/ListExtension.cs
+++ b/Extensions/ListExtension.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class ListExtension
{
diff --git a/Extensions/ObjectExtension.cs b/Extensions/ObjectExtension.cs
index f1285d4..7f51c6e 100644
--- a/Extensions/ObjectExtension.cs
+++ b/Extensions/ObjectExtension.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class ObjectExtension
{
diff --git a/Extensions/StreamExtension.cs b/Extensions/StreamExtension.cs
index dbdd563..1eecba9 100644
--- a/Extensions/StreamExtension.cs
+++ b/Extensions/StreamExtension.cs
@@ -1,7 +1,7 @@
using System;
using System.IO;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class StreamExtension
{
diff --git a/Extensions/StringExtension.cs b/Extensions/StringExtension.cs
index f1c1f0d..68b1515 100644
--- a/Extensions/StringExtension.cs
+++ b/Extensions/StringExtension.cs
@@ -3,7 +3,7 @@ using System.Globalization;
using System.IO;
using System.Text.RegularExpressions;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public enum DateTimeFormat
{
diff --git a/Extensions/TimeSpanExtension.cs b/Extensions/TimeSpanExtension.cs
index 63d74de..7a9eaae 100644
--- a/Extensions/TimeSpanExtension.cs
+++ b/Extensions/TimeSpanExtension.cs
@@ -1,6 +1,6 @@
using System;
-namespace BMA.EHR.Recruit.Service.Extensions
+namespace BMA.EHR.Recruit.Extensions
{
public static class TimeSpanExtension
{
diff --git a/Migrations/20230313045824_Initial Project.Designer.cs b/Migrations/20230313045824_Initial Project.Designer.cs
index 79b2984..26dbe61 100644
--- a/Migrations/20230313045824_Initial Project.Designer.cs
+++ b/Migrations/20230313045824_Initial Project.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using BMA.EHR.Recruit.Service.Data;
+using BMA.EHR.Recruit.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20230313045824_Initial Project")]
@@ -22,7 +22,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasAnnotation("ProductVersion", "7.0.3")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Documents.Document", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Documents.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -58,7 +58,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Documents");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -197,7 +197,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -344,7 +344,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitAddresses");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -417,7 +417,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitCertificates");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -482,7 +482,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitDocuments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -580,7 +580,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitEducations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -672,7 +672,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -754,7 +754,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitOccupations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -889,7 +889,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitPayments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -996,7 +996,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitScores");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -1056,9 +1056,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("ScoreImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", "RecruitImport")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.RecruitImport", "RecruitImport")
.WithMany("Recruits")
.HasForeignKey("RecruitImportId")
.OnDelete(DeleteBehavior.Cascade);
@@ -1066,9 +1066,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("RecruitImport");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Addresses")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1077,9 +1077,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Certificates")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1088,15 +1088,15 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "DocumentFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "DocumentFile")
.WithMany()
.HasForeignKey("DocumentFileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Documents")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1107,9 +1107,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Educations")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1118,9 +1118,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "ImportFile")
.WithMany()
.HasForeignKey("ImportFileId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1129,9 +1129,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ImportFile");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Occupations")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1140,9 +1140,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Payments")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1151,9 +1151,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", "ScoreImport")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.ScoreImport", "ScoreImport")
.WithMany("Scores")
.HasForeignKey("ScoreImportId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1162,9 +1162,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ScoreImport");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "ImportFile")
.WithMany()
.HasForeignKey("ImportFileId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1173,7 +1173,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ImportFile");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Navigation("Addresses");
@@ -1188,12 +1188,12 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Payments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Navigation("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
b.Navigation("Scores");
});
diff --git a/Migrations/20230313045824_Initial Project.cs b/Migrations/20230313045824_Initial Project.cs
index 6a24dbe..8a8f221 100644
--- a/Migrations/20230313045824_Initial Project.cs
+++ b/Migrations/20230313045824_Initial Project.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
///
public partial class InitialProject : Migration
diff --git a/Migrations/20230323020854_Update recruit import table.Designer.cs b/Migrations/20230323020854_Update recruit import table.Designer.cs
index 1f7b02b..9d3858a 100644
--- a/Migrations/20230323020854_Update recruit import table.Designer.cs
+++ b/Migrations/20230323020854_Update recruit import table.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using BMA.EHR.Recruit.Service.Data;
+using BMA.EHR.Recruit.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20230323020854_Update recruit import table")]
@@ -22,7 +22,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasAnnotation("ProductVersion", "7.0.3")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Documents.Document", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Documents.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -58,7 +58,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Documents");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -197,7 +197,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -344,7 +344,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitAddresses");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -417,7 +417,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitCertificates");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -482,7 +482,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitDocuments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -580,7 +580,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitEducations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -654,7 +654,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -736,7 +736,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitOccupations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -871,7 +871,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitPayments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -978,7 +978,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitScores");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -1038,9 +1038,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("ScoreImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", "RecruitImport")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.RecruitImport", "RecruitImport")
.WithMany("Recruits")
.HasForeignKey("RecruitImportId")
.OnDelete(DeleteBehavior.Cascade);
@@ -1048,9 +1048,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("RecruitImport");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Addresses")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1059,9 +1059,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Certificates")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1070,15 +1070,15 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "DocumentFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "DocumentFile")
.WithMany()
.HasForeignKey("DocumentFileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Documents")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1089,9 +1089,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Educations")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1100,9 +1100,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "ImportFile")
.WithMany()
.HasForeignKey("ImportFileId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1111,9 +1111,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ImportFile");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Occupations")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1122,9 +1122,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Payments")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1133,9 +1133,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", "ScoreImport")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.ScoreImport", "ScoreImport")
.WithMany("Scores")
.HasForeignKey("ScoreImportId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1144,9 +1144,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ScoreImport");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "ImportFile")
.WithMany()
.HasForeignKey("ImportFileId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1155,7 +1155,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ImportFile");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Navigation("Addresses");
@@ -1170,12 +1170,12 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Payments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Navigation("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
b.Navigation("Scores");
});
diff --git a/Migrations/20230323020854_Update recruit import table.cs b/Migrations/20230323020854_Update recruit import table.cs
index 4e59f97..01c9a51 100644
--- a/Migrations/20230323020854_Update recruit import table.cs
+++ b/Migrations/20230323020854_Update recruit import table.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
///
public partial class Updaterecruitimporttable : Migration
diff --git a/Migrations/20230325122648_Change Document Table Def.Designer.cs b/Migrations/20230325122648_Change Document Table Def.Designer.cs
index edbd39c..0684b96 100644
--- a/Migrations/20230325122648_Change Document Table Def.Designer.cs
+++ b/Migrations/20230325122648_Change Document Table Def.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using BMA.EHR.Recruit.Service.Data;
+using BMA.EHR.Recruit.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20230325122648_Change Document Table Def")]
@@ -22,7 +22,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasAnnotation("ProductVersion", "7.0.3")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Documents.Document", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Documents.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -56,7 +56,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Documents");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -195,7 +195,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -342,7 +342,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitAddresses");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -415,7 +415,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitCertificates");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -480,7 +480,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitDocuments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -578,7 +578,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitEducations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -652,7 +652,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -734,7 +734,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitOccupations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -869,7 +869,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitPayments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -976,7 +976,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitScores");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -1036,9 +1036,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("ScoreImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", "RecruitImport")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.RecruitImport", "RecruitImport")
.WithMany("Recruits")
.HasForeignKey("RecruitImportId")
.OnDelete(DeleteBehavior.Cascade);
@@ -1046,9 +1046,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("RecruitImport");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Addresses")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1057,9 +1057,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Certificates")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1068,15 +1068,15 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "DocumentFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "DocumentFile")
.WithMany()
.HasForeignKey("DocumentFileId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Documents")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1087,9 +1087,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Educations")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1098,9 +1098,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "ImportFile")
.WithMany()
.HasForeignKey("ImportFileId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1109,9 +1109,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ImportFile");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Occupations")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1120,9 +1120,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", "Recruit")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.Recruit", "Recruit")
.WithMany("Payments")
.HasForeignKey("RecruitId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1131,9 +1131,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Recruit");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", "ScoreImport")
+ b.HasOne("BMA.EHR.Recruit.Models.Recruits.ScoreImport", "ScoreImport")
.WithMany("Scores")
.HasForeignKey("ScoreImportId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1142,9 +1142,9 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ScoreImport");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
- b.HasOne("BMA.EHR.Recruit.Service.Models.Documents.Document", "ImportFile")
+ b.HasOne("BMA.EHR.Recruit.Models.Documents.Document", "ImportFile")
.WithMany()
.HasForeignKey("ImportFileId")
.OnDelete(DeleteBehavior.Cascade)
@@ -1153,7 +1153,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("ImportFile");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Navigation("Addresses");
@@ -1168,12 +1168,12 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.Navigation("Payments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Navigation("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.ScoreImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.ScoreImport", b =>
{
b.Navigation("Scores");
});
diff --git a/Migrations/20230325122648_Change Document Table Def.cs b/Migrations/20230325122648_Change Document Table Def.cs
index 3aa3729..c3418ca 100644
--- a/Migrations/20230325122648_Change Document Table Def.cs
+++ b/Migrations/20230325122648_Change Document Table Def.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
///
public partial class ChangeDocumentTableDef : Migration
diff --git a/Migrations/20230403104559_Update Recruit Score Relationship.Designer.cs b/Migrations/20230403104559_Update Recruit Score Relationship.Designer.cs
index a596d94..1cfa351 100644
--- a/Migrations/20230403104559_Update Recruit Score Relationship.Designer.cs
+++ b/Migrations/20230403104559_Update Recruit Score Relationship.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using BMA.EHR.Recruit.Service.Data;
+using BMA.EHR.Recruit.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace BMA.EHR.Recruit.Service.Migrations
+namespace BMA.EHR.Recruit.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
[Migration("20230403104559_Update Recruit Score Relationship")]
@@ -22,7 +22,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
.HasAnnotation("ProductVersion", "7.0.3")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Documents.Document", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Documents.Document", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -56,7 +56,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Documents");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.Recruit", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.Recruit", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -195,7 +195,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("Recruits");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitAddress", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitAddress", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -342,7 +342,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitAddresses");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitCertificate", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitCertificate", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -415,7 +415,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitCertificates");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitDocument", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitDocument", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -480,7 +480,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitDocuments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitEducation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitEducation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -578,7 +578,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitEducations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitImport", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitImport", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -657,7 +657,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitImports");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitOccupation", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitOccupation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -739,7 +739,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitOccupations");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitPayment", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitPayment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
@@ -874,7 +874,7 @@ namespace BMA.EHR.Recruit.Service.Migrations
b.ToTable("RecruitPayments");
});
- modelBuilder.Entity("BMA.EHR.Recruit.Service.Models.Recruits.RecruitScore", b =>
+ modelBuilder.Entity("BMA.EHR.Recruit.Models.Recruits.RecruitScore", b =>
{
b.Property