สมัครสอบตามตำแหน่ง

This commit is contained in:
Kittapath 2023-04-06 03:06:17 +07:00
parent bed23f911a
commit 43898213b2
25 changed files with 9062 additions and 307 deletions

View file

@ -617,7 +617,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// <response code="200">เมื่อเจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("check-register/{candidate:length(36)}")]
[HttpPut("check-register/{candidateId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
@ -643,7 +643,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// <response code="200">เมื่อเจ้าหน้าที่ตรวจคุณสมบัติผู้สมัครไม่ผ่านและให้สมัครใหม่สำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("reject-register/{candidate:length(36)}")]
[HttpPut("reject-register/{candidateId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
@ -669,7 +669,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// <response code="200">เมื่อเจ้าหน้าที่ตรวจการชำระเงินสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPut("check-payment/{candidate:length(36)}")]
[HttpPut("check-payment/{candidateId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
@ -695,7 +695,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// <response code="200">เมื่อเจ้าหน้าที่บันทึกสถานที่สอบสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("pass-seat/{candidate:length(36)}")]
[HttpGet("pass-seat/{candidateId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
@ -721,7 +721,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// <response code="200">เมื่อเจ้าหน้าที่บันทึกคะแนนสอบสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("pass-point/{candidate:length(36)}")]
[HttpGet("pass-point/{candidateId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]

View file

@ -1,3 +1,4 @@
using BMA.EHR.Recurit.Exam.Service.Core;
using BMA.EHR.Recurit.Exam.Service.Models;
using BMA.EHR.Recurit.Exam.Service.Request;
using BMA.EHR.Recurit.Exam.Service.Response;
@ -58,6 +59,32 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
}
/// <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);
}
}
/// <summary>
/// ข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบ
/// </summary>
@ -189,31 +216,31 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
// }
// }
// /// <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>> GetsCandidateCheckPaymentAsync(string examId)
// {
// try
// {
// var items = await _periodExamService.GetsCandidateByStatusAsync(examId, "checkPayment");
/// <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);
// return Success(items);
// }
// catch (Exception ex)
// {
// return Error(ex);
// }
// }
return Success(items);
}
catch (Exception ex)
{
return Error(ex);
}
}
// /// <summary>
// /// รายชื่อผู้สมัครสอบรอ จัดการเลขที่นั่งสอบ
@ -422,6 +449,131 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
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-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!");
}
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!");
}
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);
}
}
#endregion
}
}