ต่อ api period exam(ต่อ)

This commit is contained in:
AnandaTon 2023-03-30 16:24:27 +07:00
parent 8d64f8bb4a
commit 2ef1fb3d4a
2 changed files with 221 additions and 1 deletions

View file

@ -265,7 +265,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
return Error(ex);
}
}
/// <summary>
/// ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร
/// </summary>
@ -291,6 +291,135 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
return Error(ex);
}
}
/// <summary>
/// ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร
/// </summary>
/// <param name="candidate">รหัสรอบสมัคร</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการดึง ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("address/{candidate:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetsAsyncAddress(string candidate)
{
try
{
var items = await _periodExamService.GetsAsyncAddress(candidate);
return Success(items);
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>
/// ข้อมูล ข้อมูลครอบครัว ผู้สมัคร
/// </summary>
/// <param name="candidate">รหัสรอบสมัคร</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการดึง ข้อมูล ข้อมูลครอบครัว ผู้สมัคร สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("family/{candidate:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetsAsyncFamily(string candidate)
{
try
{
var items = await _candidateService.GetsAsyncFamily(candidate);
return Success(items);
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>
/// ข้อมูล อาชีพ ผู้สมัคร
/// </summary>
/// <param name="candidate">รหัสรอบสมัคร</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการดึง ข้อมูล อาชีพ ผู้สมัคร สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("occupation/{candidate:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetsAsyncOccupation(string candidate)
{
try
{
var items = await _candidateService.GetsAsyncOccupation(candidate);
return Success(items);
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>
/// ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร
/// </summary>
/// <param name="candidate">รหัสรอบสมัคร</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการดึง ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("career/{candidate:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetsAsyncCareer(string candidate)
{
try
{
var items = await _candidateService.GetsAsyncCareer(candidate);
return Success(items);
}
catch (Exception ex)
{
return Error(ex);
}
}
/// <summary>
/// ข้อมูล ประวัติการศีกษา ผู้สมัคร
/// </summary>
/// <param name="candidate">รหัสรอบสมัคร</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการดึง ข้อมูล ประวัติการศีกษา ผู้สมัคร สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("education/{candidate:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> GetsAsyncEducation(string candidate)
{
try
{
var items = await _periodExamService.GetsAsyncEducation(candidate);
return Success(items);
}
catch (Exception ex)
{
return Error(ex);
}
}
#endregion
}
}

View file

@ -170,6 +170,97 @@ namespace BMA.EHR.Recurit.Exam.Service.Services
})
.FirstOrDefaultAsync();
}
public async Task<CandidateOccupationResponseItem?> GetsAsyncOccupation(string candidateId)
{
return await _context.Candidates.AsQueryable()
.Where(x => x.Id == Guid.Parse(candidateId))
.Select(x => new CandidateOccupationResponseItem
{
OccupationType = x.OccupationType,
OccupationCompany = x.OccupationCompany,
OccupationDepartment = x.OccupationDepartment,
OccupationEmail = x.OccupationEmail,
OccupationTelephone = x.OccupationTelephone,
OccupationPosition = x.OccupationPosition,
})
.FirstOrDefaultAsync();
}
public async Task<IEnumerable<Career?>> GetsAsyncCareer(string candidateId)
{
return await _context.Careers.AsQueryable()
.Where(x => x.Id == Guid.Parse(candidateId))
.OrderBy(d => d.DurationStart)
.ToListAsync();
}
public async Task<CandidateAddressResponseItem?> GetsAsyncAddress(string candidateId)
{
return await _context.Candidates.AsQueryable()
.Where(x => x.Id == Guid.Parse(candidateId))
.Select(x => new CandidateAddressResponseItem
{
RegistAddress = x.RegistAddress,
RegistProvince = x.RegistProvince,
RegistProvinceId = x.RegistProvince != null ? x.RegistProvince.Id.ToString() : null,
RegistDistrict = x.RegistDistrict,
RegistDistrictId = x.RegistDistrict != null ? x.RegistDistrict.Id.ToString() : null,
RegistSubDistrict = x.RegistSubDistrict,
RegistSubDistrictId = x.RegistSubDistrict != null ? x.RegistSubDistrict.Id.ToString() : null,
RegistZipCode = x.RegistZipCode,
RegistSame = x.RegistSame,
CurrentAddress = x.CurrentAddress,
CurrentProvince = x.CurrentProvince,
CurrentProvinceId = x.CurrentProvince != null ? x.CurrentProvince.Id.ToString() : null,
CurrentDistrict = x.CurrentDistrict,
CurrentDistrictId = x.CurrentDistrict != null ? x.CurrentDistrict.Id.ToString() : null,
CurrentSubDistrict = x.CurrentSubDistrict,
CurrentSubDistrictId = x.CurrentSubDistrict != null ? x.CurrentSubDistrict.Id.ToString() : null,
CurrentZipCode = x.CurrentZipCode,
})
.FirstOrDefaultAsync();
}
public async Task<CandidateFamilyResponseItem?> GetsAsyncFamily(string candidateId)
{
return await _context.Candidates.AsQueryable()
.Where(x => x.Id == Guid.Parse(candidateId))
.Select(x => new CandidateFamilyResponseItem
{
Marry = x.Marry,
MarryPrefix = x.MarryPrefix,
MarryPrefixId = x.MarryPrefix != null ? x.MarryPrefix.Id.ToString() : null,
MarryFirstName = x.MarryFirstName,
MarryLastName = x.MarryLastName,
MarryOccupation = x.MarryOccupation,
MarryNationality = x.MarryNationality,
FatherPrefix = x.FatherPrefix,
FatherPrefixId = x.FatherPrefix != null ? x.FatherPrefix.Id.ToString() : null,
FatherFirstName = x.FatherFirstName,
FatherLastName = x.FatherLastName,
FatherOccupation = x.FatherOccupation,
FatherNationality = x.FatherNationality,
MotherPrefix = x.MotherPrefix,
MotherPrefixId = x.MotherPrefix != null ? x.MotherPrefix.Id.ToString() : null,
MotherFirstName = x.MotherFirstName,
MotherLastName = x.MotherLastName,
MotherOccupation = x.MotherOccupation,
MotherNationality = x.MotherNationality,
})
.FirstOrDefaultAsync();
}
public async Task<IEnumerable<Education?>> GetsAsyncEducation(string candidateId)
{
var candidate = await _context.Candidates.AsQueryable()
.FirstOrDefaultAsync(x => x.PeriodExam == exam && x.UserId == UserId);
return await _context.Educations.AsQueryable()
.Include(x => x.EducationLevel)
.Where(x => x.Id == Guid.Parse(candidateId))
.OrderBy(d => d.DurationStart)
.ToListAsync();
}
#endregion
}
}