From 01bebe4549cef52f80183f1b33f28154ea5a42fe Mon Sep 17 00:00:00 2001 From: Nakorn Rientrakrunchai Date: Tue, 17 Nov 2020 09:13:43 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=AA=E0=B8=A3=E0=B9=89=E0=B8=B2=E0=B8=87?= =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=87=E0=B8=B2=E0=B8=99=E0=B9=83?= =?UTF-8?q?=E0=B8=AB=E0=B8=A1=E0=B9=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core_permission_listControllers.cs | 147 ++++++++++++++++++ .../eva_level_score@core_permission_list.xlsx | Bin 0 -> 9886 bytes .../Icore_permission_listService.cs | 18 +++ .../core_permission_listInputModel.cs | 24 +++ .../core_permission_listReportRequestModel.cs | 21 +++ .../core_permission_listSearchModel.cs | 23 +++ .../core_permission_listService.cs | 44 ++++++ .../core_permission_listViewModel.cs | 22 +++ ...e_permission_listWithSelectionViewModel.cs | 13 ++ Startup.cs | 7 + .../core_permission_listViewControllers.cs | 66 ++++++++ .../core_permission_list_report.cshtml | 55 +++++++ appsettings.Development.json | 8 +- tb320eva.xml | 36 +++++ .../core_permission_list_report.js | 58 +++++++ 15 files changed, 538 insertions(+), 4 deletions(-) create mode 100644 ApiControllers/core_permission_listControllers.cs create mode 100644 EXCEL/eva_level_score@core_permission_list.xlsx create mode 100644 Models/core_permission_list/Icore_permission_listService.cs create mode 100644 Models/core_permission_list/core_permission_listInputModel.cs create mode 100644 Models/core_permission_list/core_permission_listReportRequestModel.cs create mode 100644 Models/core_permission_list/core_permission_listSearchModel.cs create mode 100644 Models/core_permission_list/core_permission_listService.cs create mode 100644 Models/core_permission_list/core_permission_listViewModel.cs create mode 100644 Models/core_permission_list/core_permission_listWithSelectionViewModel.cs create mode 100644 ViewControllers/core_permission_listViewControllers.cs create mode 100644 Views/core_permission_listView/core_permission_list_report.cshtml create mode 100644 wwwroot/js/core_permission_list/core_permission_list_report.js diff --git a/ApiControllers/core_permission_listControllers.cs b/ApiControllers/core_permission_listControllers.cs new file mode 100644 index 0000000..5cd1105 --- /dev/null +++ b/ApiControllers/core_permission_listControllers.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; +using TTSW.Controllers; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; +using System.Data; +using Microsoft.Extensions.Configuration; +using System.IO; +using System.Net; +using OfficeOpenXml; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/core_permission_list")] + public class core_permission_listController : BaseController + { + #region Private Variables + private ILogger _logger; + private Icore_permission_listService _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public core_permission_listController(ILogger logger, Icore_permission_listService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(core_permission_listWithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetBlankItem() + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetBlankItem(); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetBlankItem.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + /// + /// Download Report + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("core_permission_list_report")] + [ProducesResponseType(typeof(FileStreamResult), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult core_permission_list_report(core_permission_listReportRequestModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + + var stream = new MemoryStream(); + + using (ExcelPackage excel = new ExcelPackage(stream)) + { + excel.Workbook.Worksheets.Add("Sheet1"); + + var headerRow = new List() + { + new string[] { "Column Name", "Data Type", "Size", "Primary Key", "FK", "UI", "MultiSelectionTable", "Desc", "Desc EN", "row", "column", "length" } + }; + + // Determine the header range (e.g. A1:D1) + string headerRange = "A1:" + Char.ConvertFromUtf32(headerRow[0].Length + 64) + "1"; + + // Target a worksheet + var worksheet = excel.Workbook.Worksheets["Sheet1"]; + + // Popular header row data + worksheet.Cells[headerRange].LoadFromArrays(headerRow); + + //convert the excel package to a byte array + byte[] bin = excel.GetAsByteArray(); + + return File(new MemoryStream(bin), model.contentType); + } + + } + catch (Exception ex) + { + _logger.LogCritical($"Exception while GetReport.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + private byte[] ReadFully(Stream input) + { + using (MemoryStream ms = new MemoryStream()) + { + input.CopyTo(ms); + return ms.ToArray(); + } + } + + } + + +} + + diff --git a/EXCEL/eva_level_score@core_permission_list.xlsx b/EXCEL/eva_level_score@core_permission_list.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..077384e8c123d46e51ba745c8876b3f55c0579a9 GIT binary patch literal 9886 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 I{I}8n08d}{H~;_u literal 0 HcmV?d00001 diff --git a/Models/core_permission_list/Icore_permission_listService.cs b/Models/core_permission_list/Icore_permission_listService.cs new file mode 100644 index 0000000..1c893f9 --- /dev/null +++ b/Models/core_permission_list/Icore_permission_listService.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; + +namespace TodoAPI2.Models +{ + public interface Icore_permission_listService + { + core_permission_listWithSelectionViewModel GetBlankItem(); + } +} + diff --git a/Models/core_permission_list/core_permission_listInputModel.cs b/Models/core_permission_list/core_permission_listInputModel.cs new file mode 100644 index 0000000..c2612ec --- /dev/null +++ b/Models/core_permission_list/core_permission_listInputModel.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class core_permission_listInputModel + { + + public Guid? id { get; set; } + + public int? org_id { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/core_permission_list/core_permission_listReportRequestModel.cs b/Models/core_permission_list/core_permission_listReportRequestModel.cs new file mode 100644 index 0000000..d0cd691 --- /dev/null +++ b/Models/core_permission_list/core_permission_listReportRequestModel.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class core_permission_listReportRequestModel : core_permission_listSearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/core_permission_list/core_permission_listSearchModel.cs b/Models/core_permission_list/core_permission_listSearchModel.cs new file mode 100644 index 0000000..4688fcd --- /dev/null +++ b/Models/core_permission_list/core_permission_listSearchModel.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class core_permission_listSearchModel + { + + public Guid id { get; set; } + + public int? org_id { get; set; } + + } +} + diff --git a/Models/core_permission_list/core_permission_listService.cs b/Models/core_permission_list/core_permission_listService.cs new file mode 100644 index 0000000..e8c3696 --- /dev/null +++ b/Models/core_permission_list/core_permission_listService.cs @@ -0,0 +1,44 @@ +using AutoMapper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; +using System.IO; +using System.Web; +using System.Net; +using TTSW.Configure; +using Microsoft.Extensions.Options; +using System.Data; + +namespace TodoAPI2.Models +{ + public class core_permission_listService : Icore_permission_listService + { + private IMyDatabase db; + private Iexternal_linkageService ext; + + public core_permission_listService(IMyDatabase mydb, Iexternal_linkageService inext) + { + db = mydb; + ext = inext; + } + + + public core_permission_listWithSelectionViewModel GetBlankItem() + { + var i = new core_permission_listWithSelectionViewModel(); + i.item_org_id = (from x in ext.GetSortingDep() select x).ToList(); + + + return i; + } + + } +} + + diff --git a/Models/core_permission_list/core_permission_listViewModel.cs b/Models/core_permission_list/core_permission_listViewModel.cs new file mode 100644 index 0000000..215be88 --- /dev/null +++ b/Models/core_permission_list/core_permission_listViewModel.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class core_permission_listViewModel : BaseViewModel2 + { + + public int? org_id { get; set; } + + public string org_id_external_linkage_external_name { get; set; } + + } +} \ No newline at end of file diff --git a/Models/core_permission_list/core_permission_listWithSelectionViewModel.cs b/Models/core_permission_list/core_permission_listWithSelectionViewModel.cs new file mode 100644 index 0000000..1ae34a1 --- /dev/null +++ b/Models/core_permission_list/core_permission_listWithSelectionViewModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class core_permission_listWithSelectionViewModel: core_permission_listViewModel + { + public List item_org_id { get; set; } + + } +} \ No newline at end of file diff --git a/Startup.cs b/Startup.cs index 0c1f0ff..e39bc17 100644 --- a/Startup.cs +++ b/Startup.cs @@ -293,6 +293,8 @@ namespace Test01 services.AddScoped(); + services.AddScoped(); + #endregion services.TryAddSingleton(); @@ -515,6 +517,11 @@ namespace Test01 cfg.CreateMap(); cfg.CreateMap(); cfg.CreateMap(); + + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap(); + }); #endregion diff --git a/ViewControllers/core_permission_listViewControllers.cs b/ViewControllers/core_permission_listViewControllers.cs new file mode 100644 index 0000000..76d5c04 --- /dev/null +++ b/ViewControllers/core_permission_listViewControllers.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using TodoAPI2.Models; +using STAFF_API.Models; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Configuration; +using TodoAPI2.Controllers; + +namespace TodoAPI2.Controllers +{ + public class core_permission_listViewController : Controller + { + private ILogger _logger; + private Icore_permission_listService _repository; + private IConfiguration Configuration { get; set; } + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public core_permission_listViewController(ILogger logger, Icore_permission_listService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + // public IActionResult core_permission_list() + // { + // if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + // return View(); + // } + + // public IActionResult core_permission_list_d() + // { + // if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + // return View(); + // } + + public IActionResult core_permission_list_report() + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + return View(); + } + + //public IActionResult core_permission_list_inline() + //{ + // if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); // Or UnauthorizedView + // return View(); + //} + + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } + } +} + + diff --git a/Views/core_permission_listView/core_permission_list_report.cshtml b/Views/core_permission_listView/core_permission_list_report.cshtml new file mode 100644 index 0000000..e76a3d0 --- /dev/null +++ b/Views/core_permission_listView/core_permission_list_report.cshtml @@ -0,0 +1,55 @@ +@using Microsoft.Extensions.Configuration +@inject IConfiguration Configuration +@{ + ViewData["Title"] = "core_permission_list"; +} + +
+
+
+ @Configuration["SiteInformation:modulename"] +
+
+
+ +
+
+ +
+
รายงาน core_permission_list
+
+
+
+
+ +
+ + +
+ +
+
+
+ + +
+
+
+
+
+ + +@section FooterPlaceHolder{ + + +} + diff --git a/appsettings.Development.json b/appsettings.Development.json index 69fb467..fc51dce 100644 --- a/appsettings.Development.json +++ b/appsettings.Development.json @@ -1,9 +1,9 @@ { "connectionStrings": { - //"mainDBConnectionString": "Server=192.168.1.34;Port=32432;Database=tb320_hr_site2;User ID=postgres;Password=ZdPr0jects;", - //"externalDBConnectionString": "Server=192.168.1.34;Port=32432;Database=tb320_hr_site2;User ID=postgres;Password=ZdPr0jects;" - "mainDBConnectionString": "Server=192.168.2.233;Port=5432;Database=tb320_hr_site2;User ID=postgres;Password=project0*;", - "externalDBConnectionString": "Server=192.168.2.233;Port=5432;Database=tb320_hr_site2;User ID=postgres;Password=project0*;" + "mainDBConnectionString": "Server=192.168.1.34;Port=32432;Database=tb320_hr_site2;User ID=postgres;Password=ZdPr0jects;", + "externalDBConnectionString": "Server=192.168.1.34;Port=32432;Database=tb320_hr_site2;User ID=postgres;Password=ZdPr0jects;" + //"mainDBConnectionString": "Server=192.168.2.233;Port=5432;Database=tb320_hr_site2;User ID=postgres;Password=project0*;", + //"externalDBConnectionString": "Server=192.168.2.233;Port=5432;Database=tb320_hr_site2;User ID=postgres;Password=project0*;" }, "IdentityServer": { "url": "", diff --git a/tb320eva.xml b/tb320eva.xml index 5f47d8a..36348a3 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -23,6 +23,34 @@ If the model is invalid Error Occurred + + + Default constructure for dependency injection + + + + + + + + Get Blank Item + + + + Return a blank item + Returns the item + Error Occurred + + + + Download Report + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + Default constructure for dependency injection @@ -3726,6 +3754,14 @@ Returns the item Error Occurred + + + Default constructure for dependency injection + + + + + Default constructure for dependency injection diff --git a/wwwroot/js/core_permission_list/core_permission_list_report.js b/wwwroot/js/core_permission_list/core_permission_list_report.js new file mode 100644 index 0000000..e519725 --- /dev/null +++ b/wwwroot/js/core_permission_list/core_permission_list_report.js @@ -0,0 +1,58 @@ +var core_permission_list_API = "/api/core_permission_list/"; + +//================= Search Customizaiton ========================================= + +function core_permission_list_GetSearchParameter(fileType) { + var core_permission_listSearchObject = new Object(); +core_permission_listSearchObject.org_id = $("#s_core_permission_list_org_id").val(); + + + core_permission_listSearchObject.fileType = fileType; + + console.log(core_permission_listSearchObject); + + return core_permission_listSearchObject; +} + +function core_permission_list_FeedDataToSearchForm(data) { +DropDownClearFormAndFeedWithData($("#s_core_permission_list_org_id"), data, "id", "external_name", "item_org_id", data.org_id); + +} + +//================= Form Data Customizaiton ========================================= + +function core_permission_list_InitialForm(s) { + var successFunc = function (result) { + core_permission_list_FeedDataToSearchForm(result); + endLoad(); + }; + startLoad(); + AjaxGetRequest(apisite + core_permission_list_API + "GetBlankItem", successFunc, AlertDanger); +} + +//================= Data Table ========================================= + +var s_core_permission_list_customValidation = function (group) { + return ""; +}; + + +function core_permission_list_DoSearch(fileType) { + if (!ValidateForm('s_core_permission_list', s_core_permission_list_customValidation)) { + return; + } + + var p = $.param(core_permission_list_GetSearchParameter(fileType)); + + var report_url = apisite + "/api/core_permission_list/core_permission_list_report?" + p; + + if (fileType === "pdf") { + $("#report_result").attr("src", report_url); + $("#report_result").show(); + //window.open(report_url); + } else { + $("#report_result").hide(); + window.open(report_url); + } +} +