2023-04-06 03:06:17 +07:00
|
|
|
using BMA.EHR.Recurit.Exam.Service.Core;
|
2023-03-24 13:38:26 +07:00
|
|
|
using BMA.EHR.Recurit.Exam.Service.Models;
|
2023-04-05 00:58:22 +07:00
|
|
|
using BMA.EHR.Recurit.Exam.Service.Request;
|
2023-03-24 11:50:46 +07:00
|
|
|
using BMA.EHR.Recurit.Exam.Service.Response;
|
|
|
|
|
using BMA.EHR.Recurit.Exam.Service.Services;
|
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Swashbuckle.AspNetCore.Annotations;
|
|
|
|
|
|
|
|
|
|
namespace BMA.EHR.Recurit.Exam.Service.Controllers
|
|
|
|
|
{
|
|
|
|
|
[Route("api/v{version:apiVersion}/period-exam")]
|
|
|
|
|
[ApiVersion("1.0")]
|
|
|
|
|
[ApiController]
|
|
|
|
|
[Produces("application/json")]
|
|
|
|
|
[Authorize]
|
2023-03-31 15:01:40 +07:00
|
|
|
[SwaggerTag("จัดการข้อมูลรอบการสอบ เพื่อนำไปใช้งานในระบบ")]
|
2023-03-24 11:50:46 +07:00
|
|
|
public class PeriodExamController : BaseController
|
|
|
|
|
{
|
|
|
|
|
#region " Fields "
|
|
|
|
|
|
|
|
|
|
private readonly PeriodExamService _periodExamService;
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region " Constructor and Destructor "
|
|
|
|
|
|
|
|
|
|
public PeriodExamController(PeriodExamService periodExamService)
|
|
|
|
|
{
|
|
|
|
|
_periodExamService = periodExamService;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region " Methods "
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2023-03-24 13:38:26 +07:00
|
|
|
/// ข้อมูลรอบการสมัครสอบทั้งหมด
|
2023-03-24 11:50:46 +07:00
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
2023-03-24 13:38:26 +07:00
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลรอบการสมัครสอบทั้งหมดสำเร็จ</response>
|
2023-03-24 11:50:46 +07:00
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> GetsAsync()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var items = await _periodExamService.GetsAsync(showAll: false);
|
|
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-06 03:06:17 +07:00
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลสถานะจ่ายเงิน
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลสถานะจ่ายเงินสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet("status-payment/{examId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> GetsStatusPaymentAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var items = await _periodExamService.GetsStatusPaymentAsync(examId);
|
|
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-24 13:38:26 +07:00
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet("{examId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> GetsExamAndCandidateAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var items = await _periodExamService.GetsExamAndCandidateAsync(examId, showAll: false);
|
|
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="item">ข้อมูลรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
2023-04-05 00:58:22 +07:00
|
|
|
public async Task<ActionResult<ResponseObject>> CreateAsync(RequestPeriodExam item)
|
2023-03-24 13:38:26 +07:00
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await _periodExamService.CreateAsync(item);
|
|
|
|
|
|
|
|
|
|
return Success();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <param name="item">ข้อมูลรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpPut("{examId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
2023-04-05 00:58:22 +07:00
|
|
|
public async Task<ActionResult<ResponseObject>> UpdateAsync(string examId, RequestPeriodExam item)
|
2023-03-24 13:38:26 +07:00
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await _periodExamService.UpdateAsync(examId, item);
|
|
|
|
|
|
|
|
|
|
return Success();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpDelete("{examId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> DeleteAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
await _periodExamService.DeleteAsync(examId);
|
|
|
|
|
|
|
|
|
|
return Success();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-28 15:51:41 +07:00
|
|
|
// /// <summary>
|
|
|
|
|
// /// รายชื่อผู้สมัครสอบรอ ตรวจสอบคุณสมบัติ
|
|
|
|
|
// /// </summary>
|
|
|
|
|
// /// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
// /// <returns></returns>
|
|
|
|
|
// /// <response code="200">เมื่อทำการอ่านรายชื่อผู้สมัครสอบรอ ตรวจสอบคุณสมบัติสำเร็จ</response>
|
|
|
|
|
// /// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
// /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
// [HttpGet("register/{examId:length(36)}")]
|
|
|
|
|
// [ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
// [ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
// [ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
// public async Task<ActionResult<ResponseObject>> GetsCandidateCheckRegisterAsync(string examId)
|
|
|
|
|
// {
|
|
|
|
|
// try
|
|
|
|
|
// {
|
|
|
|
|
// var items = await _periodExamService.GetsCandidateByStatusAsync(examId, "checkRegister");
|
2023-03-25 01:09:03 +07:00
|
|
|
|
2023-03-28 15:51:41 +07:00
|
|
|
// return Success(items);
|
|
|
|
|
// }
|
|
|
|
|
// catch (Exception ex)
|
|
|
|
|
// {
|
|
|
|
|
// return Error(ex);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2023-03-25 01:09:03 +07:00
|
|
|
|
2023-04-06 03:06:17 +07:00
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลชำระเงิน
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลชำระเงินสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet("payment/{examId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> GetsPaymentExamAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var items = await _periodExamService.GetsPaymentExamAsync(examId);
|
2023-03-25 01:09:03 +07:00
|
|
|
|
2023-04-06 03:06:17 +07:00
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-28 15:51:41 +07:00
|
|
|
|
|
|
|
|
// /// <summary>
|
|
|
|
|
// /// รายชื่อผู้สมัครสอบรอ จัดการเลขที่นั่งสอบ
|
|
|
|
|
// /// </summary>
|
|
|
|
|
// /// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
// /// <returns></returns>
|
|
|
|
|
// /// <response code="200">เมื่อทำการอ่านรายชื่อผู้สมัครสอบรอ จัดการเลขที่นั่งสอบสำเร็จ</response>
|
|
|
|
|
// /// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
// /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
// [HttpGet("seat/{examId:length(36)}")]
|
|
|
|
|
// [ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
// [ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
// [ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
// public async Task<ActionResult<ResponseObject>> GetsCandidateCheckSeatAsync(string examId)
|
|
|
|
|
// {
|
|
|
|
|
// try
|
|
|
|
|
// {
|
|
|
|
|
// var items = await _periodExamService.GetsCandidateByStatusAsync(examId, "checkSeat");
|
|
|
|
|
|
|
|
|
|
// return Success(items);
|
|
|
|
|
// }
|
|
|
|
|
// catch (Exception ex)
|
|
|
|
|
// {
|
|
|
|
|
// return Error(ex);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2023-03-25 01:09:03 +07:00
|
|
|
|
|
|
|
|
/// <summary>
|
2023-03-28 15:51:41 +07:00
|
|
|
/// รายชื่อผู้สมัครสอบรอ ตรวจสอบคุณสมบัติ
|
2023-03-25 01:09:03 +07:00
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
2023-03-28 15:51:41 +07:00
|
|
|
/// <response code="200">เมื่อทำการอ่านรายชื่อผู้สมัครสอบรอ ตรวจสอบคุณสมบัติสำเร็จ</response>
|
2023-03-25 01:09:03 +07:00
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
2023-03-28 15:51:41 +07:00
|
|
|
[HttpGet("{status}/{examId:length(36)}")]
|
2023-03-25 01:09:03 +07:00
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
2023-03-28 15:51:41 +07:00
|
|
|
public async Task<ActionResult<ResponseObject>> GetsCandidateStatusAsync(string status, string examId)
|
2023-03-25 01:09:03 +07:00
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2023-03-28 15:51:41 +07:00
|
|
|
var items = await _periodExamService.GetsCandidateByStatusAsync(examId, status);
|
2023-03-25 01:09:03 +07:00
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-30 16:24:27 +07:00
|
|
|
|
2023-03-30 15:07:35 +07:00
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร
|
|
|
|
|
/// </summary>
|
2023-03-30 16:47:12 +07:00
|
|
|
/// <param name="candidate">รหัสผู้สมัคร</param>
|
2023-03-30 15:07:35 +07:00
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการดึง ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร สำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet("information/{candidate:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> GetsAsyncInformation(string candidate)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var items = await _periodExamService.GetsAsyncInformation(candidate);
|
2023-03-25 01:09:03 +07:00
|
|
|
|
2023-03-30 15:07:35 +07:00
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-30 16:24:27 +07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร
|
|
|
|
|
/// </summary>
|
2023-03-30 16:47:12 +07:00
|
|
|
/// <param name="candidate">รหัสผู้สมัคร</param>
|
2023-03-30 16:24:27 +07:00
|
|
|
/// <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>
|
2023-03-30 16:47:12 +07:00
|
|
|
/// <param name="candidate">รหัสผู้สมัคร</param>
|
2023-03-30 16:24:27 +07:00
|
|
|
/// <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
|
|
|
|
|
{
|
2023-03-30 16:47:12 +07:00
|
|
|
var items = await _periodExamService.GetsAsyncFamily(candidate);
|
2023-03-30 16:24:27 +07:00
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูล อาชีพ ผู้สมัคร
|
|
|
|
|
/// </summary>
|
2023-03-30 16:47:12 +07:00
|
|
|
/// <param name="candidate">รหัสผู้สมัคร</param>
|
2023-03-30 16:24:27 +07:00
|
|
|
/// <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
|
|
|
|
|
{
|
2023-03-30 16:47:12 +07:00
|
|
|
var items = await _periodExamService.GetsAsyncOccupation(candidate);
|
2023-03-30 16:24:27 +07:00
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร
|
|
|
|
|
/// </summary>
|
2023-03-30 16:47:12 +07:00
|
|
|
/// <param name="candidate">รหัสผู้สมัคร</param>
|
2023-03-30 16:24:27 +07:00
|
|
|
/// <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
|
|
|
|
|
{
|
2023-03-30 16:47:12 +07:00
|
|
|
var items = await _periodExamService.GetsAsyncCareer(candidate);
|
2023-03-30 16:24:27 +07:00
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-30 16:47:12 +07:00
|
|
|
|
2023-03-30 16:24:27 +07:00
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูล ประวัติการศีกษา ผู้สมัคร
|
|
|
|
|
/// </summary>
|
2023-03-30 16:47:12 +07:00
|
|
|
/// <param name="candidate">รหัสผู้สมัคร</param>
|
2023-03-30 16:24:27 +07:00
|
|
|
/// <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);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-04-06 03:06:17 +07:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// อัพเดทข้อมูลที่นั่งสอบ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านอัพเดทข้อมูลที่นั่งสอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpPut("upload-seat/{examId:length(36)}"), DisableRequestSizeLimit]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> UploadSeatCandidateAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (Request.Form.Files == null || Request.Form.Files.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
return Error(GlobalMessages.NoFileToUpload);
|
|
|
|
|
}
|
|
|
|
|
var file = Request.Form.Files[0];
|
|
|
|
|
if (!Path.GetExtension(file.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
return Error("นามสกุลไฟล์ต้องเป็น .xlsx!");
|
|
|
|
|
}
|
2023-04-06 15:42:43 +07:00
|
|
|
// return Success(file);
|
2023-04-06 03:06:17 +07:00
|
|
|
await _periodExamService.UploadSeatCandidateAsync(examId, file);
|
|
|
|
|
|
|
|
|
|
return Success();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// อัพเดทข้อมูลคะแนน
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านอัพเดทข้อมูลคะแนนสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpPut("upload-point/{examId:length(36)}"), DisableRequestSizeLimit]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> UploadPointCandidateAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (Request.Form.Files == null || Request.Form.Files.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
return Error(GlobalMessages.NoFileToUpload);
|
|
|
|
|
}
|
|
|
|
|
var file = Request.Form.Files[0];
|
|
|
|
|
if (!Path.GetExtension(file.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
return Error("นามสกุลไฟล์ต้องเป็น .xlsx!");
|
|
|
|
|
}
|
2023-04-06 15:42:43 +07:00
|
|
|
// return Success(file);
|
2023-04-06 03:06:17 +07:00
|
|
|
await _periodExamService.UploadPointCandidateAsync(examId, file);
|
|
|
|
|
|
|
|
|
|
return Success();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// โหลดผู้สมัครสอบ
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านโหลดผู้สมัครสอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet("download/{examId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> DownloadCandidateAsync(string examId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var stream = await _periodExamService.DownloadCandidateAsync(examId);
|
|
|
|
|
|
|
|
|
|
string excelName = $"Candidate_{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.xlsx";
|
|
|
|
|
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", excelName);
|
|
|
|
|
// return Success();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// ข้อมูลตำแหน่งสมัครสอบ
|
|
|
|
|
/// <param name="examId">รหัสรอบสมัคร</param>
|
|
|
|
|
/// <param name="positionId">รหัสตำแหน่ง</param>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <response code="200">เมื่อทำการอ่านข้อมูลตำแหน่งสมัครสอบสำเร็จ</response>
|
|
|
|
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
|
|
|
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
|
|
|
|
[HttpGet("position/{examId:length(36)}/{positionId:length(36)}")]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status200OK)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
|
|
|
|
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
|
|
|
|
public async Task<ActionResult<ResponseObject>> GetsNamePositionAsync(string examId, string positionId)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var items = await _periodExamService.GetsNamePositionAsync(examId, positionId);
|
|
|
|
|
|
|
|
|
|
return Success(items);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Error(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-03-24 11:50:46 +07:00
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|