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 } }