diff --git a/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs new file mode 100644 index 00000000..c6136721 --- /dev/null +++ b/BMA.EHR.Report.Service/Controllers/InsigniaReportController.cs @@ -0,0 +1,347 @@ +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Extensions; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Application.Repositories.Reports; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ModelBinding.Binders; +using Swashbuckle.AspNetCore.Annotations; +using DocumentFormat.OpenXml.Drawing; +using Telerik.Reporting; +using Telerik.Reporting.Processing; +using System.IO; + +namespace BMA.EHR.Report.Service.Controllers +{ + [Route("api/v{version:apiVersion}/report/insignia")] + [ApiVersion("2.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("API รายงานระบบเครื่องราชอิสริยาภรณ์")] + public class InsigniaReportController : BaseController + { + #region " Fields " + + private readonly IWebHostEnvironment _hostingEnvironment; + private readonly IConfiguration _configuration; + //private readonly ProbationReportRepository _repository; + private readonly GenericReportGenerator _reportGenerator; + + + #endregion + + #region " Constuctor and Destructor " + + public InsigniaReportController(IWebHostEnvironment hostingEnvironment, IConfiguration configuration, /*ProbationReportRepository repository,*/ GenericReportGenerator reportGenerator) + { + + _hostingEnvironment = hostingEnvironment; + _configuration = configuration; + //_repository = repository; + _reportGenerator = reportGenerator; + } + + #endregion + + #region " Methods " + + #region 39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย + /// + /// 39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("39/{exportType}/{id}")] + public IActionResult GetInsignia39ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"39-แบบ ขร1 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นสายสะพาย.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย + /// + /// 40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("40/{exportType}/{id}")] + public IActionResult GetInsignia40ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"40-แบบ ขร2 บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ ข้าราชการ ชั้นต่ำกว่าสายสะพาย.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ + /// + /// 41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("41/{exportType}/{id}")] + public IActionResult GetInsignia41ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"41-แบบ ขร3 บัญชีรายชื่อข้าราชการผู้ขอพระราชทานเครื่องราชฯ.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ + /// + /// 42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("42/{exportType}/{id}")] + public IActionResult GetInsignia42ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"42-แบบ ขร4 บัญชีแสดงคุณสมบัติของข้าราชการซึ่งเสนอขอเครื่องราชฯ.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 43-บัญชีระดับผลการประเมินผลการปฏิบัติราชการในรอบ 5 ปี + /// + /// 43-บัญชีระดับผลการประเมินผลการปฏิบัติราชการในรอบ 5 ปี + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("43/{exportType}/{id}")] + public IActionResult GetInsignia43ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"43-บัญชีระดับผลการประเมินผลการปฏิบัติราชการในรอบ 5 ปี.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ + /// + /// 44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("44/{exportType}/{id}")] + public IActionResult GetInsignia44ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"44-บัญชีแสดงจำนวนชั้นตราเครื่องราชฯ.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา + /// + /// 45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("45/{exportType}/{id}")] + public IActionResult GetInsignia45ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"45-บัญชีแสดงรายชื่อผู้ขอพระราชทานเหรียญจักรพรรดิมาลา.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา + /// + /// 46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("46/{exportType}/{id}")] + public IActionResult GetInsignia46ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"46-ประวัติสำหรับการเสนอขอพระราชทานเหรียญจักรพรรดิมาลา.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"insignia.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #endregion + } +} diff --git a/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs b/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs new file mode 100644 index 00000000..2d43e0fc --- /dev/null +++ b/BMA.EHR.Report.Service/Controllers/ProbationReportController.cs @@ -0,0 +1,335 @@ +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Extensions; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Application.Repositories.Reports; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ModelBinding.Binders; +using Swashbuckle.AspNetCore.Annotations; +using DocumentFormat.OpenXml.Drawing; +using Telerik.Reporting; +using Telerik.Reporting.Processing; +using System.IO; + +namespace BMA.EHR.Report.Service.Controllers +{ + [Route("api/v{version:apiVersion}/report/probation")] + [ApiVersion("2.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("API รายงานระบทดลองงาน")] + public class ProbationReportController : BaseController + { + #region " Fields " + + private readonly IWebHostEnvironment _hostingEnvironment; + private readonly IConfiguration _configuration; + private readonly ProbationReportRepository _repository; + private readonly GenericReportGenerator _reportGenerator; + + + #endregion + + #region " Constuctor and Destructor " + + public ProbationReportController(IWebHostEnvironment hostingEnvironment, IConfiguration configuration, ProbationReportRepository repository, GenericReportGenerator reportGenerator) + { + + _hostingEnvironment = hostingEnvironment; + _configuration = configuration; + _repository = repository; + _reportGenerator = reportGenerator; + } + + #endregion + + #region " Methods " + + #region 13-แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ + /// + /// 13-แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ + /// + /// assign id ของแบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("13/{exportType}/{id}")] + /*public async Task> GetProbationReportAsync(Guid id, string exportType = "pdf") + { + try + { + + string authorizationHeader = Request.Headers["Authorization"]; + string token = string.Empty; + id = Guid.Parse("f26581e7-2736-4988-b3c3-13c0bb3b15b3"); // fix ไว้ทดสอบเฉยๆเดี๋ยวมาลบครับ + + if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) + { + token = authorizationHeader.Substring("Bearer ".Length).Trim(); + var probation = await _repository.GetProbationAssignAsync(id, token); + return probation != null ? Success(probation) : NotFound(id); + } + else + { + return Unauthorized(); + } + } + catch + { + throw; + } + }*/ + public IActionResult GetProbation13ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"13-แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ-2.trdp");// + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล + /// + /// 14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("14/{exportType}/{id}")] + public IActionResult GetProbation14ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล-1.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา + /// + /// 15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("15/{exportType}/{id}")] + public IActionResult GetProbation15ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา + /// + /// 16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("16/{exportType}/{id}")] + public IActionResult GetProbation16ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-1.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ + /// + /// 17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("17/{exportType}/{id}")] + public IActionResult GetProbation17ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-1.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน + /// + /// 18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("18/{exportType}/{id}")] + public IActionResult GetProbation18ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน-1.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #region 19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา + /// + /// 19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("19/{exportType}/{id}")] + public IActionResult GetProbation19ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"probation.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #endregion + } +} diff --git a/BMA.EHR.Report.Service/Controllers/ResignReportController.cs b/BMA.EHR.Report.Service/Controllers/ResignReportController.cs new file mode 100644 index 00000000..d5f434dc --- /dev/null +++ b/BMA.EHR.Report.Service/Controllers/ResignReportController.cs @@ -0,0 +1,88 @@ +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Extensions; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Application.Repositories.Reports; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ModelBinding.Binders; +using Swashbuckle.AspNetCore.Annotations; +using DocumentFormat.OpenXml.Drawing; +using Telerik.Reporting; +using Telerik.Reporting.Processing; +using System.IO; + +namespace BMA.EHR.Report.Service.Controllers +{ + [Route("api/v{version:apiVersion}/report/resign")] + [ApiVersion("2.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("API รายงานระบบลาออก")] + public class ResignReportController : BaseController + { + #region " Fields " + + private readonly IWebHostEnvironment _hostingEnvironment; + private readonly IConfiguration _configuration; + //private readonly ProbationReportRepository _repository; + private readonly GenericReportGenerator _reportGenerator; + + + #endregion + + #region " Constuctor and Destructor " + + public ResignReportController(IWebHostEnvironment hostingEnvironment, IConfiguration configuration, /*ProbationReportRepository repository,*/ GenericReportGenerator reportGenerator) + { + + _hostingEnvironment = hostingEnvironment; + _configuration = configuration; + //_repository = repository; + _reportGenerator = reportGenerator; + } + + #endregion + + #region " Methods " + + #region 33-แบบฟอร์มหนังสือขอลาออกจากราชการ + /// + /// 33-แบบฟอร์มหนังสือขอลาออกจากราชการ + /// + /// id + /// pdf, docx หรือ xlsx + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("33/{exportType}/{id}")] + public IActionResult GetResign33ConvertReportAsync(Guid id, string exportType = "pdf") + { + try + { + + var mimeType = ""; + switch (exportType.Trim().ToLower()) + { + case "pdf": mimeType = "application/pdf"; break; + case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; + case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; + } + + var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"33-แบบฟอร์มหนังสือขอลาออกจากราชการ-1.trdp"); + var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + + return File(contentData, mimeType, $"resign.{exportType.Trim().ToLower()}"); + + } + catch + { + throw; + } + } + #endregion + + #endregion + } +}