using System.Collections.Generic; using System.IO; using System.Linq; using ClosedXML.Excel; using FastReport; using FastReport.Export.Csv; using FastReport.Export.Mht; using FastReport.Export.OoXML; using FastReport.Export.Pdf; using Microsoft.AspNetCore.Mvc; using rmutr_report.Models; using Swashbuckle.AspNetCore.Annotations; namespace rmutr_report.Controllers { [SwaggerTag("สำหรับรายงานคำขอโครงการ Thailand 4.0 (ง.5-2.2)")] public class project_request_thailand: Controller { readonly Setting _setting; public project_request_thailand(Setting setting) { this._setting = setting; } [HttpPost, Route("reports/project_request_thailand/{type}")] [ApiExplorerSettings(GroupName = "reports")] public IActionResult GetRequestProjectReport([FromRoute] string type, [FromBody] project_principle_rationale project) { // foreach (var v in project.five) // { // string na = "ประเด็นยุทธศาสตร์ที่ " ; // v.strategic_issues = na + v.strategic_issues; // string na2 = "กลยุทธ์ที่ " ; // v.measure = na2 + v.measure; // } // foreach (var v in project.eleventh) // { // foreach (var vv in v.elevenths) // { // string na = "ครั้งที่ "; // vv.the_time = na + vv.the_time; // // } // } if (project != null) { var total = project.activity.Count; if (project.activity != null) { foreach (var v in project.activity) { if (v.activity != null) { //var total = project.activity.Select(r => r.count).Sum(t => t.Value); project.together_with = "ประกอบด้วยกิจกรรมหรือโครงการย่อย " + total + " โครงการดังนี้คือ"; } else { project.together_with = null; } } } if (project.eighth != null) { foreach (var v in project.eighth) { string na = "ประเด็นยุทธศาสตร์ที่ "; v.strategic_issues = na + v.strategic_issues; string na2 = "กลยุทธ์ที่ "; v.measure = na2 + v.measure; } } if (project.fourteenth != null) { foreach (var vv in project.fourteenth) { // string na = "องค์ประกอบที่ " ; // vv.component = na + vv.component; string na2 = "ตัวบ่งชี้ที่ "; vv.indicator = na2 + vv.indicator; } } if (project.sixteenths != null) { foreach (var sixteenthData in project.sixteenths) { var sum1 = sixteenthData.sixteenths2.Sum(d => d.salaya); var sum2 = sixteenthData.sixteenths2.Sum(d => d.bophitphimuk); var sum3 = sixteenthData.sixteenths2.Sum(d => d.pohchang); var sum4 = sixteenthData.sixteenths2.Sum(d => d.klai_kangwon); sixteenthData.salaya_total = sum1; sixteenthData.bophitphimuk_total = sum2; sixteenthData.pohchang_total = sum3; sixteenthData.klai_kangwon_total = sum4; } } if (project.eighteenth != null) { foreach (var v in project.eighteenth) { foreach (var vv in v.eighteenths) { string na = "ครั้งที่ "; vv.the_time = na + vv.the_time; string na2 = " จำนวน "; vv.count_day = na2 + vv.count_day + " วัน"; if (project.count_day != null) { project.text3 = "จำนวน " + project.count_day + " วัน"; } } } } if (project.total_target != null) { project.text1 = "ผลรวมกลุ่มเป้าหมาย " + project.total_target; } if (project.total_board != null) { project.text2 = "ผลรวมคณะกรรมการ " + project.total_board; } if (project.twenty_one != null) { foreach (var v in project.twenty_one) { if (v.activity != null || v.activity != "") { v.activity = v.activity; } foreach (var vv in v.twenty_ones) { // if (vv.clause1 != null || vv.clause1 != "") // { // vv.clause1 = vv.clause1; // } // // if (vv.clause2 != null || vv.clause2 != "") // { // vv.clause2 = vv.clause2; // } // // if (vv.clause3 != null || vv.clause3 != "") // { // vv.clause3 = vv.clause3; // } // // if (vv.clause4 != null || vv.clause4 != "") // { // vv.clause4 = vv.clause4; // } if (vv.count_quantitative != null) { string na = " หน่วยนับ"; vv.khrang1 = na; } if (vv.count_unit != null) { string na = "ผู้เข้าร่วมโครงการ "; string na1 = " จำนวน "; string na2 = " คน"; vv.text1 = na; vv.text11 = na1; vv.nuai_nap = na2; } if (vv.count_project != null) { vv.clause1 = "16.1 เชิงปริมาณ"; string na = "จำนวนครั้งที่ดำเนินโครงการ "; string na2 = " ครั้ง"; vv.text2 = na; vv.khrang2 = na2; } if (vv.count_training != null) { string na = "จำนวนการจัดอบรมและสัมมนา "; string na2 = " เรื่อง"; vv.text3 = na; vv.rueang = na2; } if (vv.count_knowledge != null) { string na = "จำนวนเผยแพร่ความรู้บริการวิชาการ "; string na2 = " ครั้ง"; vv.text4 = na; vv.khrang3 = na2; } if (vv.project_start_date != null) { vv.clause2 = "16.2 เชิงเวลา"; string na3 = "วัน/เดือน/ปี ที่จะดำเนินโครงการ "; string na4 = " ถึง "; vv.range = na4; vv.text5 = na3; string na5 = "โครงการแล้วเสร็จตามเวลาที่กำหนด (ร้อยละ) "; vv.text6 = na5; } if (vv.percentage1 != null || vv.percentage2 != null) { vv.clause3 = "16.3 เชิงคุณภาพ"; string na = "ผู้เข้าร่วมโครงการมีความรู้ความเข้าใจเพิ่มขึ้น (ร้อยละ) "; string na1 = "ความพึงพอใจของผู้เข้ารับบริการในกระบวนการให้บริการ (ร้อยละ) "; vv.text7 = na; vv.text8 = na1; vv.text9 = "ผู้เข้าร่วมโครงการสามารถนำความรู้ที่ได้รับไปบูรณาการอย่างไรบ้าง"; vv.text10 = "รายละเอียด"; } if (vv.expenses != null) { vv.clause4 = "16.4 เชิงค่าใช้จ่าย"; vv.bath = " บาท"; } } } } } var _project = new List() { project }; Report report = new Report(); report.Load(_setting.report_path + "project_request_thailands.frx"); report.RegisterData(_project, "project_principle_rationale"); report.Prepare(); MemoryStream stream = new MemoryStream(); switch (type) { case "pdf": PDFExport pdf = new PDFExport(); report.Export(pdf, stream); stream.Seek(0, SeekOrigin.Begin); return File(stream, "application/pdf"); case "xls": case "xlsx": Excel2007Export excel = new Excel2007Export(); report.Export(excel, stream); stream.Seek(0, SeekOrigin.Begin); return File(stream, "application/vnd.ms-excel"); break; case "mht": MHTExport mht = new MHTExport(); report.Export(mht, stream); stream.Seek(0, SeekOrigin.Begin); return File(stream, "multipart/related"); break; case "doc": case "docx": Word2007Export word = new Word2007Export(); report.Export(word, stream); stream.Seek(0, SeekOrigin.Begin); return File(stream, "appllication/vnd.ms-word"); break; } return Ok(); } } }