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; using Newtonsoft.Json; using BMA.EHR.Application.Responses; 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; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var probation = await _repository.GetProbationAssignAsync(id, token); if(probation != null) { 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-แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ-1.trdp"); var rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"13-แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ-2.trdp"); var rptFile3 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"13-แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ-3.trdp"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; Telerik.Reporting.Report? report2 = null; Telerik.Reporting.Report? report3 = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) using (var sourceStream3 = System.IO.File.OpenRead(rptFile3)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); report3 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream3); } report.ReportParameters["Name"].Value = probation.GetType().GetProperty("Name").GetValue(probation); report.ReportParameters["Position"].Value = probation.GetType().GetProperty("Position").GetValue(probation); report.ReportParameters["Department"].Value = probation.GetType().GetProperty("Department").GetValue(probation); report.ReportParameters["OrganizationOrganization"].Value = probation.GetType().GetProperty("OrganizationOrganization").GetValue(probation); report.ReportParameters["Oc"].Value = probation.GetType().GetProperty("Oc").GetValue(probation); report.ReportParameters["DateStart"].Value = probation.GetType().GetProperty("DateStart").GetValue(probation); report.ReportParameters["DateFinish"].Value = probation.GetType().GetProperty("DateFinish").GetValue(probation); report.ReportParameters["NameMentor1"].Value = probation.GetType().GetProperty("NameMentor1").GetValue(probation); report.ReportParameters["NameMentor2"].Value = probation.GetType().GetProperty("NameMentor2").GetValue(probation); report.ReportParameters["DateMentor1"].Value = probation.GetType().GetProperty("DateMentor1").GetValue(probation); report.ReportParameters["DateMentor2"].Value = probation.GetType().GetProperty("DateMentor2").GetValue(probation); report.ReportParameters["PositionMentor1"].Value = probation.GetType().GetProperty("PositionMentor1").GetValue(probation); report.ReportParameters["PositionMentor2"].Value = probation.GetType().GetProperty("PositionMentor2").GetValue(probation); report.ReportParameters["OtherDesc"].Value = probation.GetType().GetProperty("OtherDesc").GetValue(probation); report2.ReportParameters["Other4Desc"].Value = probation.GetType().GetProperty("Other4Desc").GetValue(probation); report2.ReportParameters["Other5No1Desc"].Value = probation.GetType().GetProperty("Other5No1Desc").GetValue(probation); report3.ReportParameters["Name"].Value = probation.GetType().GetProperty("Name").GetValue(probation); report3.ReportParameters["Position"].Value = probation.GetType().GetProperty("Position").GetValue(probation); report3.ReportParameters["DateStart"].Value = probation.GetType().GetProperty("DateStart").GetValue(probation); report3.ReportParameters["NameMentor1"].Value = probation.GetType().GetProperty("NameMentor1").GetValue(probation); report3.ReportParameters["PositionMentor1"].Value = probation.GetType().GetProperty("PositionMentor1").GetValue(probation); report3.ReportParameters["DateMentor1"].Value = probation.GetType().GetProperty("DateMentor1").GetValue(probation); report3.ReportParameters["NameCommander"].Value = probation.GetType().GetProperty("NameCommander").GetValue(probation); report3.ReportParameters["PositionCommander"].Value = probation.GetType().GetProperty("PositionCommander").GetValue(probation); report3.ReportParameters["DateCommander"].Value = probation.GetType().GetProperty("DateCommander").GetValue(probation); report3.ReportParameters["Other5No2Desc"].Value = probation.GetType().GetProperty("Other5No2Desc").GetValue(probation); report.ReportParameters["Behave"].Value = "ความประพฤติ\n" + " • ให้บริการประชาชนหรือผู้รับบริการด้วยอธัยาศัยดี\n" + " • มีความรับผิดชอบในการปฏิบัติงาน\n" + " • ให้บริการประชาชนหรือผู้รับบริการด้วยความรวดเร็ว เอาใจใส่เป็นมาตรฐานเดียวกัน\n" + " • ตั้งใจปฏิบัติหน้าที่ราชการด้วยความอุตสาหะ ขยันหมั่นเพียร\n" + "ความมีคุณธรรมจริยธรรม ได้แก่\n" + " • อุทิศตนและเสียสละเวลาในการปฏิบัติงานอย่างเต็มกำลังความสามารถ\n" + " • มีจิตสำนึกที่ดี ปฏิบัติงานด้วยความซื่อสัตย์ สุจริต\n" + " • ยึดมั่นในสถาบันพระมหากษัตริย์ และไม่กระทำการใด ๆ อันจะก่อให้เกิดความเสียหายต่อประเทศชาติ ศาสนา และพระมหากษัตริย์\n" + "การรักษาวินัย ได้แก่\n" + " • มีความรับผิดชอบในการรักษาเวลาทำงาน\n" + " • แต่งกายในการปฏิบัติงานได้อย่างเหมาะสมกับการเป็นข้าราชการ\n" + " • ไม่กระทำการใด ๆ อันเป็นการเสื่อมเกียรติและศักดิ์ศรีของความเป็นข้าราชการ\n" + " • ไม่กระทำการใด ๆ อันอาจก่อให้เกิดความเสียหายแก่ชื่อเสียงของหน่วยงาน\n" + " • ปฏิบัติหน้าที่อย่างตรงไปตรงมาโดยยึกหลักจรรยาบรรณวิชาชีพ\n"; var _jobsList = new List(); dynamic jobs = probation.GetType().GetProperty("Jobs").GetValue(probation); foreach (var job in jobs) { _jobsList.Add(new { Id = "-", Activity_desc = job.activity_desc, Goal_desc = job.goal_desc, }); } var tblJobsActivity = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; tblJobsActivity.DataSource = _jobsList; var tblJobsGoal = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; tblJobsGoal.DataSource = _jobsList; var _knowledgeList = new List(); dynamic knowledges = probation.GetType().GetProperty("Knowledge").GetValue(probation); foreach (var knowledge in knowledges) { _knowledgeList.Add(new { Title = knowledge.title, Description =knowledge.description }); } var tblKnowledges = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table3"]; tblKnowledges.DataSource = _knowledgeList; var _competencysList = new List(); dynamic competencys = probation.GetType().GetProperty("Competency").GetValue(probation); foreach (var competency in competencys) { _competencysList.Add(new { Id = competency.id, Title = competency.title, Description = competency.description }); } var tblCompetencys = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table4"]; tblCompetencys.DataSource = _competencysList; var _OutputsList = new List(); dynamic Outputs = probation.GetType().GetProperty("Outputs").GetValue(probation); foreach (var Output in Outputs) { _OutputsList.Add(new { Output_desc = Output.output_desc, Indicator_desc = Output.indicator_desc, }); } var tblOutputs = (Telerik.Reporting.Table)report2.Items["detailSection1"].Items["table1"]; tblOutputs.DataSource = _OutputsList; var reportBook = new ReportBook(); reportBook.Reports.Add(report); reportBook.Reports.Add(report2); reportBook.Reports.Add(report3); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = reportBook, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); var content = result.DocumentBytes; return File(content, mimeType, $"แบบมอบหมายงาน ฯ.{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #region 14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล /// /// 14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล /// /// id /// pdf, docx หรือ xlsx /// /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("14/{exportType}/{id}")] public async Task> GetProbation14ConvertReportAsync(Guid id, string exportType = "pdf") { try { string authorizationHeader = Request.Headers["Authorization"]; string token = string.Empty; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var evaluateRecord = await _repository.GetEvaluateRecordAsync(id, token); if (evaluateRecord != null) { 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 rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล-2.trdp"); var rptFile3 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"14-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้ดูแล-3.trdp"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; //Telerik.Reporting.Report? report2 = null; Telerik.Reporting.Report? report3 = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) //using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) using (var sourceStream3 = System.IO.File.OpenRead(rptFile3)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); //report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); report3 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream3); } report.ReportParameters["Name"].Value = evaluateRecord.GetType().GetProperty("Name").GetValue(evaluateRecord); report.ReportParameters["Position"].Value = evaluateRecord.GetType().GetProperty("Position").GetValue(evaluateRecord); report.ReportParameters["ExperimenteeName"].Value = evaluateRecord.GetType().GetProperty("ExperimenteeName").GetValue(evaluateRecord); report.ReportParameters["ExperimenteePosition"].Value = evaluateRecord.GetType().GetProperty("ExperimenteePosition").GetValue(evaluateRecord); report.ReportParameters["Department"].Value = evaluateRecord.GetType().GetProperty("Department").GetValue(evaluateRecord); report.ReportParameters["OrganizationOrganization"].Value = evaluateRecord.GetType().GetProperty("OrganizationOrganization").GetValue(evaluateRecord); report.ReportParameters["Oc"].Value = evaluateRecord.GetType().GetProperty("Oc").GetValue(evaluateRecord); report.ReportParameters["DateStart"].Value = evaluateRecord.GetType().GetProperty("DateStart").GetValue(evaluateRecord); report.ReportParameters["DateFinish"].Value = evaluateRecord.GetType().GetProperty("DateFinish").GetValue(evaluateRecord); report.ReportParameters["AchievementStrengthDesc1"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc1").GetValue(evaluateRecord); report.ReportParameters["AchievementStrengthDesc2"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc2").GetValue(evaluateRecord); report.ReportParameters["AchievementStrengthDesc3"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc3").GetValue(evaluateRecord); report.ReportParameters["AchievementImproveDesc1"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc1").GetValue(evaluateRecord); report.ReportParameters["AchievementImproveDesc2"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc2").GetValue(evaluateRecord); report.ReportParameters["AchievementImproveDesc3"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc3").GetValue(evaluateRecord); report3.ReportParameters["BehaviorStrengthDesc1"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc1").GetValue(evaluateRecord); report3.ReportParameters["BehaviorStrengthDesc2"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc2").GetValue(evaluateRecord); report3.ReportParameters["BehaviorStrengthDesc3"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc3").GetValue(evaluateRecord); report3.ReportParameters["BehaviorImproveDesc1"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc1").GetValue(evaluateRecord); report3.ReportParameters["BehaviorImproveDesc2"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc2").GetValue(evaluateRecord); report3.ReportParameters["BehaviorImproveDesc3"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc3").GetValue(evaluateRecord); report3.ReportParameters["Name"].Value = evaluateRecord.GetType().GetProperty("Name").GetValue(evaluateRecord); report3.ReportParameters["Position"].Value = evaluateRecord.GetType().GetProperty("Position").GetValue(evaluateRecord); report3.ReportParameters["MentorDate"].Value = evaluateRecord.GetType().GetProperty("MentorDate").GetValue(evaluateRecord); var _evaluateslist = new List(); dynamic evaluates = evaluateRecord.GetType().GetProperty("Evaluates").GetValue(evaluateRecord); foreach (var evaluate in evaluates) { string Evaluate_expect_desc = string.Empty; string Evaluate_output_desc = string.Empty; int Evaluate_expect_level = 0; int Evaluate_output_level = 0; string Check_expect1 = string.Empty; string Check_expect2 = string.Empty; string Check_expect3 = string.Empty; string Check_expect4 = string.Empty; string Check_expect5 = string.Empty; string Check_output1 = string.Empty; string Check_output2 = string.Empty; string Check_output3 = string.Empty; string Check_output4 = string.Empty; string Check_output5 = string.Empty; var achievements = evaluate.achievements; foreach (var achievement in achievements) { Evaluate_expect_desc = achievement.evaluate_expect_desc; Evaluate_output_desc = achievement.evaluate_output_desc; Evaluate_expect_level = achievement.evaluate_expect_level; Evaluate_output_level = achievement.evaluate_output_level; } _evaluateslist.Add(new { No = evaluate.no, Date_start = evaluate.date_start, Date_finish = evaluate.date_finish, Evaluate_expect_desc = $" - {Evaluate_expect_desc}", Evaluate_output_desc = $" - {Evaluate_output_desc}", Check_expect1 = Evaluate_expect_level == 1 ? "/" : string.Empty, Check_expect2 = Evaluate_expect_level == 2 ? "/" : string.Empty, Check_expect3 = Evaluate_expect_level == 3 ? "/" : string.Empty, Check_expect4 = Evaluate_expect_level == 4 ? "/" : string.Empty, Check_expect5 = Evaluate_expect_level == 5 ? "/" : string.Empty, Check_output1 = Evaluate_output_level == 1 ? "/" : string.Empty, Check_output2 = Evaluate_output_level == 2 ? "/" : string.Empty, Check_output3 = Evaluate_output_level == 3 ? "/" : string.Empty, Check_output4 = Evaluate_output_level == 4 ? "/" : string.Empty, Check_output5 = Evaluate_output_level == 5 ? "/" : string.Empty, ApplyLevel = evaluate.apply_level, AchievementStrengthDesc = evaluate.achievement_strength_desc, AchievementImproveDesc = evaluate.achievement_improve_desc, }); } var tblEvaluate_1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; tblEvaluate_1.DataSource = _evaluateslist; var tblEvaluate_2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; tblEvaluate_2.DataSource = _evaluateslist; var reportBook = new ReportBook(); reportBook.Reports.Add(report); //reportBook.Reports.Add(report2); reportBook.Reports.Add(report3); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = reportBook, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); var content = result.DocumentBytes; return File(content, mimeType, $"แบบบันทึกผล(สำหรับผู้ดูแล).{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #region 15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา /// /// 15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา /// /// id /// pdf, docx หรือ xlsx /// /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("15/{exportType}/{id}")] public async Task> GetProbation15ConvertReportAsync(Guid id, string exportType = "pdf") { try { string authorizationHeader = Request.Headers["Authorization"]; string token = string.Empty; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var evaluateRecord = await _repository.GetEvaluateRecordAsync(id, token); if (evaluateRecord != null) { 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 rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"15-แบบบันทึกผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา-2.trdp"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; Telerik.Reporting.Report? report2 = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); } report.ReportParameters["Name"].Value = evaluateRecord.GetType().GetProperty("Name").GetValue(evaluateRecord); report.ReportParameters["Position"].Value = evaluateRecord.GetType().GetProperty("Position").GetValue(evaluateRecord); report.ReportParameters["ExperimenteeName"].Value = evaluateRecord.GetType().GetProperty("ExperimenteeName").GetValue(evaluateRecord); report.ReportParameters["ExperimenteePosition"].Value = evaluateRecord.GetType().GetProperty("ExperimenteePosition").GetValue(evaluateRecord); report.ReportParameters["Department"].Value = evaluateRecord.GetType().GetProperty("Department").GetValue(evaluateRecord); report.ReportParameters["OrganizationOrganization"].Value = evaluateRecord.GetType().GetProperty("OrganizationOrganization").GetValue(evaluateRecord); report.ReportParameters["Oc"].Value = evaluateRecord.GetType().GetProperty("Oc").GetValue(evaluateRecord); report.ReportParameters["DateStart"].Value = evaluateRecord.GetType().GetProperty("DateStart").GetValue(evaluateRecord); report.ReportParameters["DateFinish"].Value = evaluateRecord.GetType().GetProperty("DateFinish").GetValue(evaluateRecord); report.ReportParameters["AchievementStrengthDesc1"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc1").GetValue(evaluateRecord); report.ReportParameters["AchievementStrengthDesc2"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc2").GetValue(evaluateRecord); report.ReportParameters["AchievementStrengthDesc3"].Value = evaluateRecord.GetType().GetProperty("AchievementStrengthDesc3").GetValue(evaluateRecord); report.ReportParameters["AchievementImproveDesc1"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc1").GetValue(evaluateRecord); report.ReportParameters["AchievementImproveDesc2"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc2").GetValue(evaluateRecord); report.ReportParameters["AchievementImproveDesc3"].Value = evaluateRecord.GetType().GetProperty("AchievementImproveDesc3").GetValue(evaluateRecord); report2.ReportParameters["BehaviorStrengthDesc1"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc1").GetValue(evaluateRecord); report2.ReportParameters["BehaviorStrengthDesc2"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc2").GetValue(evaluateRecord); report2.ReportParameters["BehaviorStrengthDesc3"].Value = evaluateRecord.GetType().GetProperty("BehaviorStrengthDesc3").GetValue(evaluateRecord); report2.ReportParameters["BehaviorImproveDesc1"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc1").GetValue(evaluateRecord); report2.ReportParameters["BehaviorImproveDesc2"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc2").GetValue(evaluateRecord); report2.ReportParameters["BehaviorImproveDesc3"].Value = evaluateRecord.GetType().GetProperty("BehaviorImproveDesc3").GetValue(evaluateRecord); report2.ReportParameters["Name"].Value = evaluateRecord.GetType().GetProperty("Name").GetValue(evaluateRecord); report2.ReportParameters["Position"].Value = evaluateRecord.GetType().GetProperty("Position").GetValue(evaluateRecord); report2.ReportParameters["MentorDate"].Value = evaluateRecord.GetType().GetProperty("MentorDate").GetValue(evaluateRecord); var _evaluateslist = new List(); dynamic evaluates = evaluateRecord.GetType().GetProperty("Evaluates").GetValue(evaluateRecord); foreach (var evaluate in evaluates) { string Evaluate_expect_desc = string.Empty; string Evaluate_output_desc = string.Empty; int Evaluate_expect_level = 0; int Evaluate_output_level = 0; string Check_expect1 = string.Empty; string Check_expect2 = string.Empty; string Check_expect3 = string.Empty; string Check_expect4 = string.Empty; string Check_expect5 = string.Empty; string Check_output1 = string.Empty; string Check_output2 = string.Empty; string Check_output3 = string.Empty; string Check_output4 = string.Empty; string Check_output5 = string.Empty; var achievements = evaluate.achievements; foreach (var achievement in achievements) { Evaluate_expect_desc = achievement.evaluate_expect_desc; Evaluate_output_desc = achievement.evaluate_output_desc; Evaluate_expect_level = achievement.evaluate_expect_level; Evaluate_output_level = achievement.evaluate_output_level; } _evaluateslist.Add(new { No = evaluate.no, Date_start = evaluate.date_start, Date_finish = evaluate.date_finish, Evaluate_expect_desc = $" - {Evaluate_expect_desc}", Evaluate_output_desc = $" - {Evaluate_output_desc}", Check_expect1 = Evaluate_expect_level == 1 ? "/" : string.Empty, Check_expect2 = Evaluate_expect_level == 2 ? "/" : string.Empty, Check_expect3 = Evaluate_expect_level == 3 ? "/" : string.Empty, Check_expect4 = Evaluate_expect_level == 4 ? "/" : string.Empty, Check_expect5 = Evaluate_expect_level == 5 ? "/" : string.Empty, Check_output1 = Evaluate_output_level == 1 ? "/" : string.Empty, Check_output2 = Evaluate_output_level == 2 ? "/" : string.Empty, Check_output3 = Evaluate_output_level == 3 ? "/" : string.Empty, Check_output4 = Evaluate_output_level == 4 ? "/" : string.Empty, Check_output5 = Evaluate_output_level == 5 ? "/" : string.Empty, ApplyLevel = evaluate.apply_level, AchievementStrengthDesc = evaluate.achievement_strength_desc, AchievementImproveDesc = evaluate.achievement_improve_desc, }); } var tblEvaluate_1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; tblEvaluate_1.DataSource = _evaluateslist; var tblEvaluate_2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; tblEvaluate_2.DataSource = _evaluateslist; var reportBook = new ReportBook(); reportBook.Reports.Add(report); reportBook.Reports.Add(report2); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = reportBook, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); var content = result.DocumentBytes; return File(content, mimeType, $"แบบบันทึกผล(สำหรับผู้บังคับบัญชา).{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #region 16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา /// /// 16-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับผู้บังคับบัญชา /// /// assign_id แบบมอบหมายทดลองงาน /// evaluate_no ครั้งที่ประเมินผล /// pdf, docx หรือ xlsx /// /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("16/{exportType}/{id}/{no}")] public async Task> GetProbation16ConvertReportAsync(Guid id, string no, string exportType = "pdf") { try { string authorizationHeader = Request.Headers["Authorization"]; string token = string.Empty; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var evaluateAssign = await _repository.GetEvaluateAssignAsync(id, no, token); if (evaluateAssign != null) { 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"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); } report.ReportParameters["EvaluateDateStart"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateStart").GetValue(evaluateAssign); report.ReportParameters["EvaluateDateFinish"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateFinish").GetValue(evaluateAssign); report.ReportParameters["No"].Value = evaluateAssign.GetType().GetProperty("No").GetValue(evaluateAssign); report.ReportParameters["Name"].Value = evaluateAssign.GetType().GetProperty("Name").GetValue(evaluateAssign); report.ReportParameters["Position"].Value = evaluateAssign.GetType().GetProperty("Position").GetValue(evaluateAssign); report.ReportParameters["Department"].Value = evaluateAssign.GetType().GetProperty("Department").GetValue(evaluateAssign); report.ReportParameters["OrganizationOrganization"].Value = evaluateAssign.GetType().GetProperty("OrganizationOrganization").GetValue(evaluateAssign); report.ReportParameters["Oc"].Value = evaluateAssign.GetType().GetProperty("Oc").GetValue(evaluateAssign); report.ReportParameters["DateStart"].Value = evaluateAssign.GetType().GetProperty("DateStart").GetValue(evaluateAssign); report.ReportParameters["DateFinish"].Value = evaluateAssign.GetType().GetProperty("DateFinish").GetValue(evaluateAssign); report.ReportParameters["BehaviorStrengthDesc"].Value = evaluateAssign.GetType().GetProperty("BehaviorStrengthDesc").GetValue(evaluateAssign); report.ReportParameters["BehaviorImproveDesc"].Value = evaluateAssign.GetType().GetProperty("BehaviorImproveDesc").GetValue(evaluateAssign); report.ReportParameters["CommanderName"].Value = evaluateAssign.GetType().GetProperty("CommanderName").GetValue(evaluateAssign); report.ReportParameters["CommanderPosition"].Value = evaluateAssign.GetType().GetProperty("CommanderPosition").GetValue(evaluateAssign); report.ReportParameters["AssessorDated"].Value = evaluateAssign.GetType().GetProperty("AssessorDated").GetValue(evaluateAssign); var _table1 = new List(); _table1.Add(new { Check_Knowledge1 = evaluateAssign.GetType().GetProperty("KnowledgeLevel1").GetValue(evaluateAssign), Check_Knowledge2 = evaluateAssign.GetType().GetProperty("KnowledgeLevel2").GetValue(evaluateAssign), Check_Knowledge3 = evaluateAssign.GetType().GetProperty("KnowledgeLevel3").GetValue(evaluateAssign), Check_Knowledge4 = evaluateAssign.GetType().GetProperty("KnowledgeLevel4").GetValue(evaluateAssign), Check_Knowledge5 = evaluateAssign.GetType().GetProperty("KnowledgeLevel5").GetValue(evaluateAssign), Check_SkillLevel1 = evaluateAssign.GetType().GetProperty("SkillLevel1").GetValue(evaluateAssign), Check_SkillLevel2 = evaluateAssign.GetType().GetProperty("SkillLevel2").GetValue(evaluateAssign), Check_SkillLevel3 = evaluateAssign.GetType().GetProperty("SkillLevel3").GetValue(evaluateAssign), Check_SkillLevel4 = evaluateAssign.GetType().GetProperty("SkillLevel4").GetValue(evaluateAssign), Check_SkillLevel5 = evaluateAssign.GetType().GetProperty("SkillLevel5").GetValue(evaluateAssign), Check_CompetencyLevel1 = evaluateAssign.GetType().GetProperty("CompetencyLevel1").GetValue(evaluateAssign), Check_CompetencyLevel2 = evaluateAssign.GetType().GetProperty("CompetencyLevel2").GetValue(evaluateAssign), Check_CompetencyLevel3 = evaluateAssign.GetType().GetProperty("CompetencyLevel3").GetValue(evaluateAssign), Check_CompetencyLevel4 = evaluateAssign.GetType().GetProperty("CompetencyLevel4").GetValue(evaluateAssign), Check_CompetencyLevel5 = evaluateAssign.GetType().GetProperty("CompetencyLevel5").GetValue(evaluateAssign), Check_LearnLevel1 = evaluateAssign.GetType().GetProperty("LearnLevel1").GetValue(evaluateAssign), Check_LearnLevel2 = evaluateAssign.GetType().GetProperty("LearnLevel2").GetValue(evaluateAssign), Check_LearnLevel3 = evaluateAssign.GetType().GetProperty("LearnLevel3").GetValue(evaluateAssign), Check_LearnLevel4 = evaluateAssign.GetType().GetProperty("LearnLevel4").GetValue(evaluateAssign), Check_LearnLevel5 = evaluateAssign.GetType().GetProperty("LearnLevel5").GetValue(evaluateAssign), Check_ApplyLevel1 = evaluateAssign.GetType().GetProperty("ApplyLevel1").GetValue(evaluateAssign), Check_ApplyLevel2 = evaluateAssign.GetType().GetProperty("ApplyLevel2").GetValue(evaluateAssign), Check_ApplyLevel3 = evaluateAssign.GetType().GetProperty("ApplyLevel3").GetValue(evaluateAssign), Check_ApplyLevel4 = evaluateAssign.GetType().GetProperty("ApplyLevel4").GetValue(evaluateAssign), Check_ApplyLevel5 = evaluateAssign.GetType().GetProperty("ApplyLevel5").GetValue(evaluateAssign), Check_Success_level1 = evaluateAssign.GetType().GetProperty("SuccessLevel1").GetValue(evaluateAssign), Check_Success_level2 = evaluateAssign.GetType().GetProperty("SuccessLevel2").GetValue(evaluateAssign), Check_Success_level3 = evaluateAssign.GetType().GetProperty("SuccessLevel3").GetValue(evaluateAssign), Check_Success_level4 = evaluateAssign.GetType().GetProperty("SuccessLevel4").GetValue(evaluateAssign), Check_Success_level5 = evaluateAssign.GetType().GetProperty("SuccessLevel5").GetValue(evaluateAssign), AchievementOtherDesc = evaluateAssign.GetType().GetProperty("AchievementOtherDesc").GetValue(evaluateAssign), Check_AchievementOtherLevel1 = evaluateAssign.GetType().GetProperty("AchievementOtherLevel1").GetValue(evaluateAssign), Check_AchievementOtherLevel2 = evaluateAssign.GetType().GetProperty("AchievementOtherLevel2").GetValue(evaluateAssign), Check_AchievementOtherLevel3 = evaluateAssign.GetType().GetProperty("AchievementOtherLevel3").GetValue(evaluateAssign), Check_AchievementOtherLevel4 = evaluateAssign.GetType().GetProperty("AchievementOtherLevel4").GetValue(evaluateAssign), Check_AchievementOtherLevel5 = evaluateAssign.GetType().GetProperty("AchievementOtherLevel5").GetValue(evaluateAssign), }); var tblEvaluateAssign1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; tblEvaluateAssign1.DataSource = _table1; var _table2 = new List(); _table2.Add(new { Check_Conduct1Level1 = evaluateAssign.GetType().GetProperty("Conduct1Level1").GetValue(evaluateAssign), Check_Conduct1Level2 = evaluateAssign.GetType().GetProperty("Conduct1Level2").GetValue(evaluateAssign), Check_Conduct1Level3 = evaluateAssign.GetType().GetProperty("Conduct1Level3").GetValue(evaluateAssign), Check_Conduct1Level4 = evaluateAssign.GetType().GetProperty("Conduct1Level4").GetValue(evaluateAssign), Check_Conduct1Level5 = evaluateAssign.GetType().GetProperty("Conduct1Level5").GetValue(evaluateAssign), Check_Conduct2Level1 = evaluateAssign.GetType().GetProperty("Conduct2Level1").GetValue(evaluateAssign), Check_Conduct2Level2 = evaluateAssign.GetType().GetProperty("Conduct2Level2").GetValue(evaluateAssign), Check_Conduct2Level3 = evaluateAssign.GetType().GetProperty("Conduct2Level3").GetValue(evaluateAssign), Check_Conduct2Level4 = evaluateAssign.GetType().GetProperty("Conduct2Level4").GetValue(evaluateAssign), Check_Conduct2Level5 = evaluateAssign.GetType().GetProperty("Conduct2Level5").GetValue(evaluateAssign), Check_Conduct3Level1 = evaluateAssign.GetType().GetProperty("Conduct3Level1").GetValue(evaluateAssign), Check_Conduct3Level2 = evaluateAssign.GetType().GetProperty("Conduct3Level2").GetValue(evaluateAssign), Check_Conduct3Level3 = evaluateAssign.GetType().GetProperty("Conduct3Level3").GetValue(evaluateAssign), Check_Conduct3Level4 = evaluateAssign.GetType().GetProperty("Conduct3Level4").GetValue(evaluateAssign), Check_Conduct3Level5 = evaluateAssign.GetType().GetProperty("Conduct3Level5").GetValue(evaluateAssign), Check_Conduct4Level1 = evaluateAssign.GetType().GetProperty("Conduct4Level1").GetValue(evaluateAssign), Check_Conduct4Level2 = evaluateAssign.GetType().GetProperty("Conduct4Level2").GetValue(evaluateAssign), Check_Conduct4Level3 = evaluateAssign.GetType().GetProperty("Conduct4Level3").GetValue(evaluateAssign), Check_Conduct4Level4 = evaluateAssign.GetType().GetProperty("Conduct4Level4").GetValue(evaluateAssign), Check_Conduct4Level5 = evaluateAssign.GetType().GetProperty("Conduct4Level5").GetValue(evaluateAssign), Check_Moral1Level1 = evaluateAssign.GetType().GetProperty("Moral1Level1").GetValue(evaluateAssign), Check_Moral1Level2 = evaluateAssign.GetType().GetProperty("Moral1Level2").GetValue(evaluateAssign), Check_Moral1Level3 = evaluateAssign.GetType().GetProperty("Moral1Level3").GetValue(evaluateAssign), Check_Moral1Level4 = evaluateAssign.GetType().GetProperty("Moral1Level4").GetValue(evaluateAssign), Check_Moral1Level5 = evaluateAssign.GetType().GetProperty("Moral1Level5").GetValue(evaluateAssign), Check_Moral2Level1 = evaluateAssign.GetType().GetProperty("Moral2Level1").GetValue(evaluateAssign), Check_Moral2Level2 = evaluateAssign.GetType().GetProperty("Moral2Level2").GetValue(evaluateAssign), Check_Moral2Level3 = evaluateAssign.GetType().GetProperty("Moral2Level3").GetValue(evaluateAssign), Check_Moral2Level4 = evaluateAssign.GetType().GetProperty("Moral2Level4").GetValue(evaluateAssign), Check_Moral2Level5 = evaluateAssign.GetType().GetProperty("Moral2Level5").GetValue(evaluateAssign), Check_Moral3Level1 = evaluateAssign.GetType().GetProperty("Moral3Level1").GetValue(evaluateAssign), Check_Moral3Level2 = evaluateAssign.GetType().GetProperty("Moral3Level2").GetValue(evaluateAssign), Check_Moral3Level3 = evaluateAssign.GetType().GetProperty("Moral3Level3").GetValue(evaluateAssign), Check_Moral3Level4 = evaluateAssign.GetType().GetProperty("Moral3Level4").GetValue(evaluateAssign), Check_Moral3Level5 = evaluateAssign.GetType().GetProperty("Moral3Level5").GetValue(evaluateAssign), Check_Discipline1Level1 = evaluateAssign.GetType().GetProperty("Discipline1Level1").GetValue(evaluateAssign), Check_Discipline1Level2 = evaluateAssign.GetType().GetProperty("Discipline1Level2").GetValue(evaluateAssign), Check_Discipline1Level3 = evaluateAssign.GetType().GetProperty("Discipline1Level3").GetValue(evaluateAssign), Check_Discipline1Level4 = evaluateAssign.GetType().GetProperty("Discipline1Level4").GetValue(evaluateAssign), Check_Discipline1Level5 = evaluateAssign.GetType().GetProperty("Discipline1Level5").GetValue(evaluateAssign), Check_Discipline2Level1 = evaluateAssign.GetType().GetProperty("Discipline2Level1").GetValue(evaluateAssign), Check_Discipline2Level2 = evaluateAssign.GetType().GetProperty("Discipline2Level2").GetValue(evaluateAssign), Check_Discipline2Level3 = evaluateAssign.GetType().GetProperty("Discipline2Level3").GetValue(evaluateAssign), Check_Discipline2Level4 = evaluateAssign.GetType().GetProperty("Discipline2Level4").GetValue(evaluateAssign), Check_Discipline2Level5 = evaluateAssign.GetType().GetProperty("Discipline2Level5").GetValue(evaluateAssign), Check_Discipline3Level1 = evaluateAssign.GetType().GetProperty("Discipline3Level1").GetValue(evaluateAssign), Check_Discipline3Level2 = evaluateAssign.GetType().GetProperty("Discipline3Level2").GetValue(evaluateAssign), Check_Discipline3Level3 = evaluateAssign.GetType().GetProperty("Discipline3Level3").GetValue(evaluateAssign), Check_Discipline3Level4 = evaluateAssign.GetType().GetProperty("Discipline3Level4").GetValue(evaluateAssign), Check_Discipline3Level5 = evaluateAssign.GetType().GetProperty("Discipline3Level5").GetValue(evaluateAssign), Check_Discipline4Level1 = evaluateAssign.GetType().GetProperty("Discipline4Level1").GetValue(evaluateAssign), Check_Discipline4Level2 = evaluateAssign.GetType().GetProperty("Discipline4Level2").GetValue(evaluateAssign), Check_Discipline4Level3 = evaluateAssign.GetType().GetProperty("Discipline4Level3").GetValue(evaluateAssign), Check_Discipline4Level4 = evaluateAssign.GetType().GetProperty("Discipline4Level4").GetValue(evaluateAssign), Check_Discipline4Level5 = evaluateAssign.GetType().GetProperty("Discipline4Level5").GetValue(evaluateAssign), Check_Discipline5Level1 = evaluateAssign.GetType().GetProperty("Discipline5Level1").GetValue(evaluateAssign), Check_Discipline5Level2 = evaluateAssign.GetType().GetProperty("Discipline5Level2").GetValue(evaluateAssign), Check_Discipline5Level3 = evaluateAssign.GetType().GetProperty("Discipline5Level3").GetValue(evaluateAssign), Check_Discipline5Level4 = evaluateAssign.GetType().GetProperty("Discipline5Level4").GetValue(evaluateAssign), Check_Discipline5Level5 = evaluateAssign.GetType().GetProperty("Discipline5Level5").GetValue(evaluateAssign), BehaviorOtherDesc = evaluateAssign.GetType().GetProperty("BehaviorOtherDesc").GetValue(evaluateAssign), Check_BehaviorOtherLevel1 = evaluateAssign.GetType().GetProperty("BehaviorOtherLevel1").GetValue(evaluateAssign), Check_BehaviorOtherLevel2 = evaluateAssign.GetType().GetProperty("BehaviorOtherLevel2").GetValue(evaluateAssign), Check_BehaviorOtherLevel3 = evaluateAssign.GetType().GetProperty("BehaviorOtherLevel3").GetValue(evaluateAssign), Check_BehaviorOtherLevel4 = evaluateAssign.GetType().GetProperty("BehaviorOtherLevel4").GetValue(evaluateAssign), Check_BehaviorOtherLevel5 = evaluateAssign.GetType().GetProperty("BehaviorOtherLevel5").GetValue(evaluateAssign), }); var tblEvaluateAssign2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; tblEvaluateAssign2.DataSource = _table2; var _table3 = new List(); _table3.Add(new { Orientation = evaluateAssign.GetType().GetProperty("Orientation").GetValue(evaluateAssign), SelfLearning = evaluateAssign.GetType().GetProperty("SelfLearning").GetValue(evaluateAssign), TrainingSeminar = evaluateAssign.GetType().GetProperty("TrainingSeminar").GetValue(evaluateAssign), OtherTraining = evaluateAssign.GetType().GetProperty("OtherTraining").GetValue(evaluateAssign), }); var tblEvaluateAssign3 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table3"]; tblEvaluateAssign3.DataSource = _table3; System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = report, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); var content = result.DocumentBytes; return File(content, mimeType, $"แบบประเมินผล(สำหรับผู้บังคับบัญชา).{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #region 17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ /// /// 17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ /// /// assign_id แบบมอบหมายทดลองงาน /// evaluate_no ครั้งที่ประเมินผล /// pdf, docx หรือ xlsx /// /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("17/{exportType}/{id}/{no}")] public async Task> GetProbation17ConvertReportAsync(Guid id, string no, string exportType = "pdf") { try { string authorizationHeader = Request.Headers["Authorization"]; string token = string.Empty; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var evaluateAssign = await _repository.GetEvaluateChairmanAssignAsync(id, no, token); if (evaluateAssign != null) { 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 rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"17-แบบประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับคณะกรรมการ-2.trdp"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; Telerik.Reporting.Report? report2 = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); } report.ReportParameters["EvaluateDateStart"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateStart").GetValue(evaluateAssign); report.ReportParameters["EvaluateDateFinish"].Value = evaluateAssign.GetType().GetProperty("EvaluateDateFinish").GetValue(evaluateAssign); report.ReportParameters["No"].Value = evaluateAssign.GetType().GetProperty("No").GetValue(evaluateAssign); report.ReportParameters["Name"].Value = evaluateAssign.GetType().GetProperty("Name").GetValue(evaluateAssign); report.ReportParameters["Position"].Value = evaluateAssign.GetType().GetProperty("Position").GetValue(evaluateAssign); report.ReportParameters["Department"].Value = evaluateAssign.GetType().GetProperty("Department").GetValue(evaluateAssign); report.ReportParameters["OrganizationOrganization"].Value = evaluateAssign.GetType().GetProperty("OrganizationOrganization").GetValue(evaluateAssign); report.ReportParameters["Oc"].Value = evaluateAssign.GetType().GetProperty("Oc").GetValue(evaluateAssign); report.ReportParameters["DateStart"].Value = evaluateAssign.GetType().GetProperty("DateStart").GetValue(evaluateAssign); report.ReportParameters["DateFinish"].Value = evaluateAssign.GetType().GetProperty("DateFinish").GetValue(evaluateAssign); report2.ReportParameters["ChairmanName"].Value = evaluateAssign.GetType().GetProperty("ChairmanName").GetValue(evaluateAssign); report2.ReportParameters["ChairmanPosition"].Value = evaluateAssign.GetType().GetProperty("ChairmanPosition").GetValue(evaluateAssign); report2.ReportParameters["ChairmanDate"].Value = evaluateAssign.GetType().GetProperty("ChairmanDate").GetValue(evaluateAssign); report2.ReportParameters["MentorName1"].Value = evaluateAssign.GetType().GetProperty("MentorName1").GetValue(evaluateAssign); report2.ReportParameters["MentorPosition1"].Value = evaluateAssign.GetType().GetProperty("MentorPosition1").GetValue(evaluateAssign); report2.ReportParameters["MentorDate1"].Value = evaluateAssign.GetType().GetProperty("MentorDate1").GetValue(evaluateAssign); report2.ReportParameters["MentorName2"].Value = evaluateAssign.GetType().GetProperty("MentorName2").GetValue(evaluateAssign); report2.ReportParameters["MentorPosition2"].Value = evaluateAssign.GetType().GetProperty("MentorPosition2").GetValue(evaluateAssign); report2.ReportParameters["MentorDate2"].Value = evaluateAssign.GetType().GetProperty("MentorDate2").GetValue(evaluateAssign); var _page1table1 = new List(); _page1table1.Add(new { KnowledgeLevel = evaluateAssign.GetType().GetProperty("KnowledgeLevel").GetValue(evaluateAssign), ApplyLevel = evaluateAssign.GetType().GetProperty("ApplyLevel").GetValue(evaluateAssign), SuccessLevel = evaluateAssign.GetType().GetProperty("SuccessLevel").GetValue(evaluateAssign), AchievementOtherDesc = evaluateAssign.GetType().GetProperty("AchievementOtherDesc").GetValue(evaluateAssign), AchievementOtherLevel = evaluateAssign.GetType().GetProperty("AchievementOtherLevel").GetValue(evaluateAssign), }); var tblEvaluatChaireAssign1 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table2"]; //Design is table2 tblEvaluatChaireAssign1.DataSource = _page1table1; var _page1table2 = new List(); _page1table2.Add(new { Conduct1Level = evaluateAssign.GetType().GetProperty("Conduct1Level").GetValue(evaluateAssign), Conduct2Level = evaluateAssign.GetType().GetProperty("Conduct2Level").GetValue(evaluateAssign), Conduct3Level = evaluateAssign.GetType().GetProperty("Conduct3Level").GetValue(evaluateAssign), Conduct4Level = evaluateAssign.GetType().GetProperty("Conduct4Level").GetValue(evaluateAssign), Moral1Level = evaluateAssign.GetType().GetProperty("Moral1Level").GetValue(evaluateAssign), Moral2Level = evaluateAssign.GetType().GetProperty("Moral2Level").GetValue(evaluateAssign), Moral3Level = evaluateAssign.GetType().GetProperty("Moral3Level").GetValue(evaluateAssign), Discipline1Level = evaluateAssign.GetType().GetProperty("Discipline1Level").GetValue(evaluateAssign), Discipline2Level = evaluateAssign.GetType().GetProperty("Discipline2Level").GetValue(evaluateAssign), Discipline3Level = evaluateAssign.GetType().GetProperty("Discipline3Level").GetValue(evaluateAssign), Discipline4Level = evaluateAssign.GetType().GetProperty("Discipline4Level").GetValue(evaluateAssign), Discipline5Level = evaluateAssign.GetType().GetProperty("Discipline5Level").GetValue(evaluateAssign), BehaviorOtherDesc = evaluateAssign.GetType().GetProperty("BehaviorOtherDesc").GetValue(evaluateAssign), BehaviorOtherLevel = evaluateAssign.GetType().GetProperty("BehaviorOtherLevel").GetValue(evaluateAssign), }); var tblEvaluatChaireAssign2 = (Telerik.Reporting.Table)report.Items["detailSection1"].Items["table1"]; //Design is table1 tblEvaluatChaireAssign2.DataSource = _page1table2; var _page2table1 = new List(); _page2table1.Add(new { AchievementScore = evaluateAssign.GetType().GetProperty("AchievementScore").GetValue(evaluateAssign), AchievementPercent = evaluateAssign.GetType().GetProperty("AchievementPercent").GetValue(evaluateAssign), AchievementResult = evaluateAssign.GetType().GetProperty("AchievementResult").GetValue(evaluateAssign), BehaviorScore = evaluateAssign.GetType().GetProperty("BehaviorScore").GetValue(evaluateAssign), BehaviorPercent = evaluateAssign.GetType().GetProperty("BehaviorPercent").GetValue(evaluateAssign), BehaviorResult = evaluateAssign.GetType().GetProperty("BehaviorResult").GetValue(evaluateAssign), AchievementScoretotal = evaluateAssign.GetType().GetProperty("AchievementScoretotal").GetValue(evaluateAssign), BehaviorScoretotal = evaluateAssign.GetType().GetProperty("BehaviorScoretotal").GetValue(evaluateAssign), }); var tblEvaluateChairAssign3 = (Telerik.Reporting.Table)report2.Items["detailSection1"].Items["table2"]; tblEvaluateChairAssign3.DataSource = _page2table1; var _page2table2 = new List(); _page2table2.Add(new { DevelopOrientationScore = evaluateAssign.GetType().GetProperty("DevelopOrientationScore").GetValue(evaluateAssign), DevelopSelfLearningScore = evaluateAssign.GetType().GetProperty("DevelopSelfLearningScore").GetValue(evaluateAssign), DevelopTrainingSeminarScore = evaluateAssign.GetType().GetProperty("DevelopTrainingSeminarScore").GetValue(evaluateAssign), DevelopOtherTrainingScore = evaluateAssign.GetType().GetProperty("DevelopOtherTrainingScore").GetValue(evaluateAssign), DevelopOrientationPercent = evaluateAssign.GetType().GetProperty("DevelopOrientationPercent").GetValue(evaluateAssign), DevelopSelfLearningPercent = evaluateAssign.GetType().GetProperty("DevelopSelfLearningPercent").GetValue(evaluateAssign), DevelopTrainingSeminarPercent = evaluateAssign.GetType().GetProperty("DevelopTrainingSeminarPercent").GetValue(evaluateAssign), DevelopOtherTrainingPercent = evaluateAssign.GetType().GetProperty("DevelopOtherTrainingPercent").GetValue(evaluateAssign), }); var tblEvaluateChairAssign4 = (Telerik.Reporting.Table)report2.Items["detailSection1"].Items["table3"]; tblEvaluateChairAssign4.DataSource = _page2table2; var reportBook = new ReportBook(); reportBook.Reports.Add(report); reportBook.Reports.Add(report2); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = reportBook, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); var content = result.DocumentBytes; return File(content, mimeType, $"แบบประเมินผล(สำหรับคณะกรรมการ).{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #region 18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน /// /// 18-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ สำหรับประธาน /// /// id /// pdf, docx หรือ xlsx /// /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("18/{exportType}/{id}")] public async Task> GetProbation18ConvertReportAsync(Guid id, string exportType = "pdf") { try { string authorizationHeader = Request.Headers["Authorization"]; string token = string.Empty; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var evaluateAssign = await _repository.GetEvaluateResultAssignAsync(id, token); if (evaluateAssign != null) { 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"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; //Telerik.Reporting.Report? report2 = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) //using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); //report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); } report.ReportParameters["Name"].Value = evaluateAssign.GetType().GetProperty("Name").GetValue(evaluateAssign); var reportBook = new ReportBook(); reportBook.Reports.Add(report); //reportBook.Reports.Add(report2); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = reportBook, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); var content = result.DocumentBytes; return File(content, mimeType, $"แบบรายงานการประเมินผล(สำหรับประธาน).{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #region 19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา /// /// 19-แบบรายงานการประเมินผลการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายเวลา /// /// id /// pdf, docx หรือ xlsx /// /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("19/{exportType}/{id}")] public async Task> GetProbation19ConvertReportAsync(Guid id, string exportType = "pdf") { try { string authorizationHeader = Request.Headers["Authorization"]; string token = string.Empty; if (!string.IsNullOrEmpty(authorizationHeader) && authorizationHeader.StartsWith("Bearer ")) { token = authorizationHeader.Substring("Bearer ".Length).Trim(); var evaluateAssign = await _repository.GetEvaluateResultAssignAsync(id, token); if (evaluateAssign != null) { 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"); ReportPackager reportPacker = new ReportPackager(); Telerik.Reporting.Report? report = null; using (var sourceStream = System.IO.File.OpenRead(rptFile)) { report = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream); } report.ReportParameters["DateStart"].Value = evaluateAssign.GetType().GetProperty("DateStart").GetValue(evaluateAssign); report.ReportParameters["DateFinish"].Value = evaluateAssign.GetType().GetProperty("DateFinish").GetValue(evaluateAssign); report.ReportParameters["Reson"].Value = evaluateAssign.GetType().GetProperty("Reson").GetValue(evaluateAssign); report.ReportParameters["DevelopComplete"].Value = evaluateAssign.GetType().GetProperty("DevelopComplete").GetValue(evaluateAssign); report.ReportParameters["NotDevelopComplete"].Value = evaluateAssign.GetType().GetProperty("NotDevelopComplete").GetValue(evaluateAssign); report.ReportParameters["PassResult"].Value = evaluateAssign.GetType().GetProperty("PassResult").GetValue(evaluateAssign); report.ReportParameters["NotPassResult"].Value = evaluateAssign.GetType().GetProperty("NotPassResult").GetValue(evaluateAssign); report.ReportParameters["ExpandMonth"].Value = evaluateAssign.GetType().GetProperty("ExpandMonth").GetValue(evaluateAssign); report.ReportParameters["ChairmanName"].Value = evaluateAssign.GetType().GetProperty("ChairmanName").GetValue(evaluateAssign); report.ReportParameters["ChairmanPosition"].Value = evaluateAssign.GetType().GetProperty("ChairmanPosition").GetValue(evaluateAssign); report.ReportParameters["ChairmanDate"].Value = evaluateAssign.GetType().GetProperty("ChairmanDate").GetValue(evaluateAssign); System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); InstanceReportSource instanceReportSource = new InstanceReportSource() { ReportDocument = report, }; ReportProcessor reportProcessor = new ReportProcessor(_configuration); RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); return File(result.DocumentBytes, mimeType, $"แบบรายงานการประเมินผล(กรณีขยายเวลา).{exportType.Trim().ToLower()}"); } else { return NotFound(); } } else { return Unauthorized(); } } catch { throw; } } #endregion #endregion } }