เพิ่มวุฒิการศิกษา

This commit is contained in:
Kittapath 2023-10-08 13:56:18 +07:00
parent 77d397a8d8
commit a2847d9d55
4 changed files with 256 additions and 93 deletions

View file

@ -316,6 +316,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Models
[Comment("โทรศัพท์ บุคคลที่สามารถติดต่อได้")]
public string? ContactTel { get; set; }
public virtual List<Education> Educations { get; set; } = new List<Education>();
public virtual List<Career> Careers { get; set; } = new List<Career>();
}
}

View file

@ -3,13 +3,13 @@ namespace BMA.EHR.Recurit.Exam.Service.Response
{
public class CandidateEducationResponseItem
{
public Guid EducationLevelExamId { get; set; }
public string EducationName { get; set; } = string.Empty;
public string EducationMajor { get; set; } = string.Empty;
public string EducationLocation { get; set; } = string.Empty;
public string EducationType { get; set; } = string.Empty;
public DateTime EducationEndDate { get; set; }
public string EducationScores { get; set; } = string.Empty;
public Guid EducationLevelHighId { get; set; }
public Guid? EducationLevelExamId { get; set; }
public string? EducationName { get; set; } = string.Empty;
public string? EducationMajor { get; set; } = string.Empty;
public string? EducationLocation { get; set; } = string.Empty;
public string? EducationType { get; set; } = string.Empty;
public DateTime? EducationEndDate { get; set; }
public string? EducationScores { get; set; } = string.Empty;
public Guid? EducationLevelHighId { get; set; }
}
}

View file

@ -78,14 +78,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Response
public string? OccupationPositionType { get; set; }
public string? OccupationTelephone { get; set; }
public Guid EducationLevelExamId { get; set; }
public string EducationName { get; set; } = string.Empty;
public string EducationMajor { get; set; } = string.Empty;
public string EducationLocation { get; set; } = string.Empty;
public string EducationType { get; set; } = string.Empty;
public DateTime EducationEndDate { get; set; }
public string EducationScores { get; set; } = string.Empty;
public Guid EducationLevelHighId { get; set; }
public Guid? EducationLevelExamId { get; set; }
public string? EducationName { get; set; } = string.Empty;
public string? EducationMajor { get; set; } = string.Empty;
public string? EducationLocation { get; set; } = string.Empty;
public string? EducationType { get; set; } = string.Empty;
public DateTime? EducationEndDate { get; set; }
public string? EducationScores { get; set; } = string.Empty;
public Guid? EducationLevelHighId { get; set; }
public Guid? ContactPrefixId { get; set; }
public string? ContactFirstname { get; set; }

View file

@ -1,5 +1,6 @@
using System.Security.Claims;
using BMA.EHR.Domain.Models.Placement;
using BMA.EHR.Extensions;
using BMA.EHR.Recurit.Exam.Service.Core;
using BMA.EHR.Recurit.Exam.Service.Data;
using BMA.EHR.Recurit.Exam.Service.Models;
@ -875,33 +876,17 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
candidate.ContactLastname = updated.ContactLastname;
candidate.ContactRelations = updated.ContactRelations;
candidate.ContactTel = updated.ContactTel;
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
if (candidate.Educations.FirstOrDefault() == null)
{
var education = new Education
{
Candidate = candidate,
EducationLevelExamId = educationLevelExam.Id,
EducationLevelExamName = educationLevelExam.Name,
EducationName = updated.EducationName,
EducationMajor = updated.EducationMajor,
EducationLocation = updated.EducationLocation,
EducationType = updated.EducationType,
EducationEndDate = updated.EducationEndDate,
EducationScores = updated.EducationScores,
EducationLevelHighId = educationLevelHigh.Id,
EducationLevelHighName = educationLevelHigh.Name,
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "",
@ -909,23 +894,61 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
LastUpdateUserId = UserId ?? "",
LastUpdateFullName = FullName ?? "",
};
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelExamId = educationLevelExam.Id;
education.EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelHighId = educationLevelHigh.Id;
education.EducationLevelHighName = educationLevelHigh.Name;
}
await _context.Educations.AddAsync(education);
}
else
{
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
candidate.Educations.FirstOrDefault().EducationName = updated.EducationName;
candidate.Educations.FirstOrDefault().EducationMajor = updated.EducationMajor;
candidate.Educations.FirstOrDefault().EducationLocation = updated.EducationLocation;
candidate.Educations.FirstOrDefault().EducationType = updated.EducationType;
candidate.Educations.FirstOrDefault().EducationEndDate = updated.EducationEndDate;
candidate.Educations.FirstOrDefault().EducationScores = updated.EducationScores;
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
candidate.Educations.FirstOrDefault().LastUpdatedAt = DateTime.Now;
candidate.Educations.FirstOrDefault().LastUpdateUserId = UserId ?? "";
candidate.Educations.FirstOrDefault().LastUpdateFullName = FullName ?? "";
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
}
}
await _context.SaveChangesAsync();
@ -1078,32 +1101,17 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
candidate.ContactRelations = updated.ContactRelations;
candidate.ContactTel = updated.ContactTel;
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
if (candidate.Educations.FirstOrDefault() == null)
{
var education = new Education
{
Candidate = candidate,
EducationLevelExamId = educationLevelExam.Id,
EducationLevelExamName = educationLevelExam.Name,
EducationName = updated.EducationName,
EducationMajor = updated.EducationMajor,
EducationLocation = updated.EducationLocation,
EducationType = updated.EducationType,
EducationEndDate = updated.EducationEndDate,
EducationScores = updated.EducationScores,
EducationLevelHighId = educationLevelHigh.Id,
EducationLevelHighName = educationLevelHigh.Name,
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "",
@ -1111,23 +1119,61 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
LastUpdateUserId = UserId ?? "",
LastUpdateFullName = FullName ?? "",
};
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelExamId = educationLevelExam.Id;
education.EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelHighId = educationLevelHigh.Id;
education.EducationLevelHighName = educationLevelHigh.Name;
}
await _context.Educations.AddAsync(education);
}
else
{
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
candidate.Educations.FirstOrDefault().EducationName = updated.EducationName;
candidate.Educations.FirstOrDefault().EducationMajor = updated.EducationMajor;
candidate.Educations.FirstOrDefault().EducationLocation = updated.EducationLocation;
candidate.Educations.FirstOrDefault().EducationType = updated.EducationType;
candidate.Educations.FirstOrDefault().EducationEndDate = updated.EducationEndDate;
candidate.Educations.FirstOrDefault().EducationScores = updated.EducationScores;
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
candidate.Educations.FirstOrDefault().LastUpdatedAt = DateTime.Now;
candidate.Educations.FirstOrDefault().LastUpdateUserId = UserId ?? "";
candidate.Educations.FirstOrDefault().LastUpdateFullName = FullName ?? "";
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
}
}
await _context.SaveChangesAsync();
}
@ -1615,32 +1661,17 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (candidate == null)
throw new Exception(GlobalMessages.CandidateNotFound);
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
if (candidate.Educations.FirstOrDefault() == null)
{
var education = new Education
{
Candidate = candidate,
EducationLevelExamId = educationLevelExam.Id,
EducationLevelExamName = educationLevelExam.Name,
EducationName = updated.EducationName,
EducationMajor = updated.EducationMajor,
EducationLocation = updated.EducationLocation,
EducationType = updated.EducationType,
EducationEndDate = updated.EducationEndDate,
EducationScores = updated.EducationScores,
EducationLevelHighId = educationLevelHigh.Id,
EducationLevelHighName = educationLevelHigh.Name,
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "",
@ -1648,23 +1679,61 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
LastUpdateUserId = UserId ?? "",
LastUpdateFullName = FullName ?? "",
};
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelExamId = educationLevelExam.Id;
education.EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelHighId = educationLevelHigh.Id;
education.EducationLevelHighName = educationLevelHigh.Name;
}
await _context.Educations.AddAsync(education);
}
else
{
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
candidate.Educations.FirstOrDefault().EducationName = updated.EducationName;
candidate.Educations.FirstOrDefault().EducationMajor = updated.EducationMajor;
candidate.Educations.FirstOrDefault().EducationLocation = updated.EducationLocation;
candidate.Educations.FirstOrDefault().EducationType = updated.EducationType;
candidate.Educations.FirstOrDefault().EducationEndDate = updated.EducationEndDate;
candidate.Educations.FirstOrDefault().EducationScores = updated.EducationScores;
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
candidate.Educations.FirstOrDefault().LastUpdatedAt = DateTime.Now;
candidate.Educations.FirstOrDefault().LastUpdateUserId = UserId ?? "";
candidate.Educations.FirstOrDefault().LastUpdateFullName = FullName ?? "";
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
}
}
await _context.SaveChangesAsync();
@ -1678,32 +1747,17 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
if (candidate == null)
throw new Exception(GlobalMessages.CandidateNotFound);
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
if (candidate.Educations.FirstOrDefault() == null)
{
var education = new Education
{
Candidate = candidate,
EducationLevelExamId = educationLevelExam.Id,
EducationLevelExamName = educationLevelExam.Name,
EducationName = updated.EducationName,
EducationMajor = updated.EducationMajor,
EducationLocation = updated.EducationLocation,
EducationType = updated.EducationType,
EducationEndDate = updated.EducationEndDate,
EducationScores = updated.EducationScores,
EducationLevelHighId = educationLevelHigh.Id,
EducationLevelHighName = educationLevelHigh.Name,
CreatedAt = DateTime.Now,
CreatedUserId = UserId ?? "",
CreatedFullName = FullName ?? "",
@ -1711,23 +1765,61 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
LastUpdateUserId = UserId ?? "",
LastUpdateFullName = FullName ?? "",
};
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelExamId = educationLevelExam.Id;
education.EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
education.EducationLevelHighId = educationLevelHigh.Id;
education.EducationLevelHighName = educationLevelHigh.Name;
}
await _context.Educations.AddAsync(education);
}
else
{
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
candidate.Educations.FirstOrDefault().EducationName = updated.EducationName;
candidate.Educations.FirstOrDefault().EducationMajor = updated.EducationMajor;
candidate.Educations.FirstOrDefault().EducationLocation = updated.EducationLocation;
candidate.Educations.FirstOrDefault().EducationType = updated.EducationType;
candidate.Educations.FirstOrDefault().EducationEndDate = updated.EducationEndDate;
candidate.Educations.FirstOrDefault().EducationScores = updated.EducationScores;
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
candidate.Educations.FirstOrDefault().LastUpdatedAt = DateTime.Now;
candidate.Educations.FirstOrDefault().LastUpdateUserId = UserId ?? "";
candidate.Educations.FirstOrDefault().LastUpdateFullName = FullName ?? "";
if (updated.EducationLevelExamId != null)
{
var educationLevelExam = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelExamId);
if (educationLevelExam == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelExamId = educationLevelExam.Id;
candidate.Educations.FirstOrDefault().EducationLevelExamName = educationLevelExam.Name;
}
if (updated.EducationLevelHighId != null)
{
var educationLevelHigh = await _contextMetadata.EducationLevels.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == updated.EducationLevelHighId);
if (educationLevelHigh == null)
throw new Exception(GlobalMessages.EducationLevelNotFound);
candidate.Educations.FirstOrDefault().EducationLevelHighId = educationLevelHigh.Id;
candidate.Educations.FirstOrDefault().EducationLevelHighName = educationLevelHigh.Name;
}
}
await _context.SaveChangesAsync();
}
@ -2332,6 +2424,76 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
throw new Exception(GlobalMessages.CitizanDupicate);
}
public async Task GetExamCandidateAsync(Guid id)
{
var exam = await _context.Candidates.AsQueryable()
.Where(x => x.Id == id)
.Select(p => new
{
p.Id,
ExamIdenNumber = p.ExamIdenNumber,
PositionName = p.PositionExam == null ? "" : p.PositionExam.PositionName,
PeriodExamName = p.PeriodExam == null ? "" : p.PeriodExam.Name,
FullName = $"{p.PrefixName}{p.FirstName} {p.LastName}",
Religion = p.ReligionName,
Nationality = p.Nationality,
DateOfBirth = p.DateOfBirth == null ? "" : p.DateOfBirth.Value.ToThaiFullDate(),
Age = p.DateOfBirth == null ? "" : p.DateOfBirth.Value.CalculateAgeStrV2(0, 0),
CitizenId = p.CitizenId,
EducationLevelExamName = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationLevelExamName,
EducationName = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationName,
EducationMajor = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationMajor,
EducationLocation = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationLocation,
EducationEndDate = p.Educations.FirstOrDefault() == null || p.Educations.FirstOrDefault().EducationEndDate == null ? "" : p.Educations.FirstOrDefault().EducationEndDate.Value.ToThaiFullDate(),
EducationScores = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationScores,
EducationType = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationType,
EducationLevelHighName = p.Educations.FirstOrDefault() == null ? "" : p.Educations.FirstOrDefault().EducationLevelHighName,
OccupationPositionType = p.OccupationPositionType,
OccupationPosition = p.OccupationPosition,
OccupationSalary = p.OccupationSalary,
OccupationGroup = p.OccupationGroup,
OccupationPile = p.OccupationPile,
OccupationOrg = p.OccupationOrg,
OccupationTelephone = p.OccupationTelephone,
Careers = p.Careers.Select(y => new
{
Position = y.Position,
Type = y.Type,
DurationStart = y.DurationStart.ToThaiFullDate(),
DurationEnd = y.DurationEnd.ToThaiFullDate(),
RangeDate = y.RangeDate,
}),
RegistAddress = p.RegistAddress,
RegistProvinceName = p.RegistProvinceName,
RegistDistrictName = p.RegistDistrictName,
RegistSubDistrictName = p.RegistSubDistrictName,
RegistZipCode = p.RegistZipCode,
CurrentAddress = p.CurrentAddress,
CurrentProvinceName = p.CurrentProvinceName,
CurrentSubDistrictName = p.CurrentSubDistrictName,
CurrentDistrictName = p.CurrentDistrictName,
CurrentZipCode = p.CurrentZipCode,
Telephone = p.Telephone,
Email = p.Email,
ContactFullName = $"{p.ContactPrefixName}{p.ContactFirstname} {p.ContactLastname}",
ContactRelations = p.ContactRelations,
ContactTel = p.ContactTel,
RegisterDate = p.RegisterDate == null ? "" : p.RegisterDate.Value.ToThaiFullDate(),
})
.FirstOrDefaultAsync();
if (exam == null)
throw new Exception(GlobalMessages.CandidateNotFound);
}
#endregion
}
}