diff --git a/src/WorkFlowCheck.API/Controllers/UserController.cs b/src/WorkFlowCheck.API/Controllers/UserController.cs index 8ce2aa6..6002ea3 100644 --- a/src/WorkFlowCheck.API/Controllers/UserController.cs +++ b/src/WorkFlowCheck.API/Controllers/UserController.cs @@ -292,6 +292,37 @@ namespace WorkFlowCheck.API.Controllers } + [HttpGet("GetRoleCheckListTemplateHeader/{id}")] + public async Task> GetRoleCheckListTemplateHeader(int id) + { + var retVal = new ApiResponseDTO() + { + IsSuccess = true, + }; + var roleCheckListTemplateHeaderDTO = await _userService.GetRoleCheckListTemplateHeaderAsync(id); + + if (roleCheckListTemplateHeaderDTO != null) + { + if (roleCheckListTemplateHeaderDTO.Id == 0) + { + retVal.IsSuccess = false; + retVal.Errors.Add("No match!"); + retVal.Data = roleCheckListTemplateHeaderDTO; + } + else + { + retVal.IsSuccess = true; + retVal.Data = roleCheckListTemplateHeaderDTO; + } + } + else + { + retVal.IsSuccess = false; + retVal.Errors.Add("No data!"); + } + + return retVal; + } [HttpGet("GetAllRoleCheckListTemplateHeaders")] public async Task>> GetAllRoleCheckListTemplateHeaders() { @@ -314,5 +345,26 @@ namespace WorkFlowCheck.API.Controllers return retVal; } + [HttpPost("UpdateRoleCheckListTemplateHeader")] + public async Task> UpdateRoleCheckListTemplateHeader([FromBody] RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO) + { + var retVal = new ApiResponseDTO() + { + IsSuccess = true + }; + + try + { + var result = await _userService.UpdateRoleCheckListTemplateHeaderAsync(roleCheckListTemplateHeaderDTO); + retVal.Data = result; + + } + catch (Exception ex) + { + retVal.IsSuccess = false; + Log.Error(ex.Message); + } + return retVal; + } } } diff --git a/src/WorkFlowCheck.API/WorkFlowCheck.API.csproj b/src/WorkFlowCheck.API/WorkFlowCheck.API.csproj index 8239f24..e4160a6 100644 --- a/src/WorkFlowCheck.API/WorkFlowCheck.API.csproj +++ b/src/WorkFlowCheck.API/WorkFlowCheck.API.csproj @@ -35,4 +35,8 @@ + + + + diff --git a/src/WorkFlowCheck.BL/Services/Interfaces/IUserService.cs b/src/WorkFlowCheck.BL/Services/Interfaces/IUserService.cs index ec8eab5..dbaf3ad 100644 --- a/src/WorkFlowCheck.BL/Services/Interfaces/IUserService.cs +++ b/src/WorkFlowCheck.BL/Services/Interfaces/IUserService.cs @@ -22,8 +22,10 @@ namespace WorkFlowCheck.BL.Services.Interfaces Task> GetAllUserRoleAsync(); Task UpdateUserRoleAsync(UserRoleDTO userRoleDTO); - Task> GetAllRoleCheckListTemplateHeadersAsync(); - + Task GetRoleCheckListTemplateHeaderAsync(int Id); + Task> GetAllRoleCheckListTemplateHeadersAsync(); + Task UpdateRoleCheckListTemplateHeaderAsync(RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO); + string GenerateJwtToken(UserDTO userDTO); } } diff --git a/src/WorkFlowCheck.BL/Services/UserService.cs b/src/WorkFlowCheck.BL/Services/UserService.cs index 88da185..9534b35 100644 --- a/src/WorkFlowCheck.BL/Services/UserService.cs +++ b/src/WorkFlowCheck.BL/Services/UserService.cs @@ -340,6 +340,24 @@ namespace WorkFlowCheck.BL.Services return retVal; } + public async Task GetRoleCheckListTemplateHeaderAsync(int Id) + { + var retVal = new RoleCheckListTemplateHeaderDTO(); + + try + { + var userRole = await _dbContext.RoleCheckListTemplateHeaders.Where(w => w.Id == Id).FirstOrDefaultAsync(); + if (userRole != null) + { + retVal = _mapper.Map(userRole); + } + } + catch (Exception ex) + { + Log.Error(ex.Message); + } + return retVal; + } public async Task> GetAllRoleCheckListTemplateHeadersAsync() { var retVal = new List(); @@ -361,5 +379,55 @@ namespace WorkFlowCheck.BL.Services } return retVal; } + public async Task UpdateRoleCheckListTemplateHeaderAsync(RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO) + { + var retVal = new RoleCheckListTemplateHeaderDTO(); + try + { + if (roleCheckListTemplateHeaderDTO.Id == 0) + { + var roleCheckListTemplateHeader_Exists = await _dbContext.RoleCheckListTemplateHeaders + .Where(w => w.RoleId == roleCheckListTemplateHeaderDTO.RoleId && + w.CheckListTemplateHeaderId == roleCheckListTemplateHeaderDTO.CheckListTemplateHeaderId) + .FirstOrDefaultAsync(); + if (roleCheckListTemplateHeader_Exists == null) + { + var roleCheckListTemplateHeader = new RoleCheckListTemplateHeader(); + roleCheckListTemplateHeader.CheckListTemplateHeaderId = roleCheckListTemplateHeaderDTO.CheckListTemplateHeaderId; + roleCheckListTemplateHeader.RoleId = roleCheckListTemplateHeaderDTO.RoleId; + roleCheckListTemplateHeader.Enabled = roleCheckListTemplateHeaderDTO.Enabled; + + _dbContext.RoleCheckListTemplateHeaders.Add(roleCheckListTemplateHeader); + await _dbContext.SaveChangesAsync(); + + retVal = _mapper.Map(roleCheckListTemplateHeader); + } + else + { + retVal = _mapper.Map(roleCheckListTemplateHeader_Exists); + } + } + else + { + var roleCheckListTemplateHeader = await _dbContext.RoleCheckListTemplateHeaders.Where(w => w.Id == roleCheckListTemplateHeaderDTO.Id).FirstOrDefaultAsync(); + + if (roleCheckListTemplateHeader != null) + { + roleCheckListTemplateHeader.CheckListTemplateHeaderId = roleCheckListTemplateHeaderDTO.CheckListTemplateHeaderId; + roleCheckListTemplateHeader.RoleId = roleCheckListTemplateHeaderDTO.RoleId; + roleCheckListTemplateHeader.Enabled = roleCheckListTemplateHeaderDTO.Enabled; + await _dbContext.SaveChangesAsync(); + + retVal = _mapper.Map(roleCheckListTemplateHeader); + } + } + } + catch (Exception ex) + { + Log.Error(ex.Message); + } + + return retVal; + } } } diff --git a/src/WorkFlowCheck.Common/DTO/RoleCheckListTemplateHeaderDTO.cs b/src/WorkFlowCheck.Common/DTO/RoleCheckListTemplateHeaderDTO.cs index 3437936..a7f8f43 100644 --- a/src/WorkFlowCheck.Common/DTO/RoleCheckListTemplateHeaderDTO.cs +++ b/src/WorkFlowCheck.Common/DTO/RoleCheckListTemplateHeaderDTO.cs @@ -11,9 +11,9 @@ namespace WorkFlowCheck.Common.DTO { public int Id { get; set; } public int RoleId { get; set; } - public RoleDTO RoleDTO { get; set; } = null!; + public RoleDTO? RoleDTO { get; set; } = null!; public int CheckListTemplateHeaderId { get; set; } - public CheckListTemplateHeaderDTO CheckListTemplateHeaderDTO { get; set; } = null!; + public CheckListTemplateHeaderDTO? CheckListTemplateHeaderDTO { get; set; } = null!; public bool Enabled { get; set; } = false; } } diff --git a/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml b/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml index 357c498..8236864 100644 --- a/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml +++ b/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml @@ -1,4 +1,119 @@ @page @model WorkFlowCheck.Web.Pages.UserAndRole.RoleCheckListTemplateHeaderEditPageModel +@using Microsoft.AspNetCore.Antiforgery +@inject IAntiforgery Antiforgery @{ + ViewData["Title"] = "Ellenőrzési pont"; + var RoleCheckListTemplateHeaderId = Model.RoleCheckListTemplateHeaderDTO.Id; + var urlPost = Url.Page("./RoleCheckListTemplateHeaderEditPage", "Save"); +} +

@ViewData["Title"]

+ + + +
+
+ + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+ + +
+
+
+ +@section Scripts { + } diff --git a/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml.cs b/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml.cs index b2103f0..c2d0c04 100644 --- a/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml.cs +++ b/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeaderEditPage.cshtml.cs @@ -1,12 +1,75 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.AspNetCore.Mvc.Rendering; +using Serilog; +using WorkFlowCheck.Common.DTO; +using WorkFlowCheck.Web.Services; +using WorkFlowCheck.Web.Services.Interfaces; namespace WorkFlowCheck.Web.Pages.UserAndRole { public class RoleCheckListTemplateHeaderEditPageModel : PageModel { - public void OnGet() + private readonly ILogger _logger; + private readonly IUserService _userService; + private readonly ICheckListService _checkListService; + + [BindProperty] + public RoleCheckListTemplateHeaderDTO RoleCheckListTemplateHeaderDTO { get; set; } = new(); + + [BindProperty] + public List Roles { get; set; } + + [BindProperty] + public List RoleCheckListTemplateHeaders { get; set; } + + public RoleCheckListTemplateHeaderEditPageModel(ILogger logger, IUserService userService, ICheckListService checkListService) { + _logger = logger; + _userService = userService; + _checkListService = checkListService; + } + + public async Task OnGet(int id) + { + await InitSelectItems(); + RoleCheckListTemplateHeaderDTO = await _userService.GetRoleCheckListTemplateHeader(id); + } + public async Task OnPostSave([FromBody] RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO) + { + try + { + var result = await _userService.UpdateRoleCheckListTemplateHeader(roleCheckListTemplateHeaderDTO); + if (result.IsSuccess) + { + return new JsonResult(new { success = true }); + } + else + { + return new JsonResult(new { success = false }); + } + } + catch (Exception ex) + { + Log.Error(ex.Message); + } + + return new JsonResult(new { success = false }); + } + private async Task InitSelectItems() + { + var roles = await _userService.GetAllRoles(); + this.Roles = new List(); + foreach (var role in roles) + { + this.Roles.Add(new SelectListItem() { Value = role.Id.ToString(), Text = role.RoleName }); + } + var checkListTemplateHeaders = await _checkListService.GetAllCheckListTemplateHeaderAsync(); + this.RoleCheckListTemplateHeaders = new List(); + foreach (var checkListTemplateHeader in checkListTemplateHeaders) + { + this.RoleCheckListTemplateHeaders.Add(new SelectListItem() { Value = checkListTemplateHeader.Id.ToString(), Text = checkListTemplateHeader.ShortName }); + } } } } diff --git a/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeadersPage.cshtml b/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeadersPage.cshtml index 3524528..e86df38 100644 --- a/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeadersPage.cshtml +++ b/src/WorkFlowCheck.Web/Pages/UserAndRole/RoleCheckListTemplateHeadersPage.cshtml @@ -17,6 +17,7 @@ ID Role name Template name + Enabled Action @@ -25,6 +26,7 @@ ID Role name Template name + Enabled Action @@ -43,6 +45,22 @@ { data: "id" }, { data: "roleDTO.roleName" }, { data: "checkListTemplateHeaderDTO.description" }, + { + data: "enabled", + searchable: false, + sortable: false, + className: "text-center", + render: function ( data, type, row ) { + if (data === true) { + return ''; + } + if (data === false) { + return ''; + } + return data; + } + + }, { data: null, render: function (data, type, row) { return renderActionButtons(row.id); }} @@ -53,7 +71,7 @@ "visible": false }, { - "targets": 3, + "targets": 4, "className": "text-center", "width": "10%" } diff --git a/src/WorkFlowCheck.Web/Pages/UserAndRole/UserRoleEditPage.cshtml.cs b/src/WorkFlowCheck.Web/Pages/UserAndRole/UserRoleEditPage.cshtml.cs index 117d259..c036ac4 100644 --- a/src/WorkFlowCheck.Web/Pages/UserAndRole/UserRoleEditPage.cshtml.cs +++ b/src/WorkFlowCheck.Web/Pages/UserAndRole/UserRoleEditPage.cshtml.cs @@ -1,12 +1,49 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; +using Serilog; +using WorkFlowCheck.Common.DTO; +using WorkFlowCheck.Web.Services.Interfaces; namespace WorkFlowCheck.Web.Pages.UserAndRole { public class UserRoleEditPageModel : PageModel { - public void OnGet() + private readonly ILogger _logger; + private readonly IUserService _userService; + + [BindProperty] + public UserRoleDTO UserRoleDTO { get; set; } + + public UserRoleEditPageModel(ILogger logger, IUserService userService) { + _logger = logger; + _userService = userService; + } + + public async Task OnGet(int id) + { + UserRoleDTO = await _userService.GetUserRole(id); + } + public async Task OnPostSave([FromBody] UserRoleDTO userRoleDTO) + { + try + { + var result = await _userService.UpdateUserRole(userRoleDTO); + if (result.IsSuccess) + { + return new JsonResult(new { success = true }); + } + else + { + return new JsonResult(new { success = false }); + } + } + catch (Exception ex) + { + Log.Error(ex.Message); + } + + return new JsonResult(new { success = false }); } } } diff --git a/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs b/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs index 3ab539c..bfbb953 100644 --- a/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs +++ b/src/WorkFlowCheck.Web/Services/Interfaces/IUserService.cs @@ -17,6 +17,9 @@ namespace WorkFlowCheck.Web.Services.Interfaces Task> GetAllUserRoles(); Task> UpdateUserRole(UserRoleDTO userRoleDTO); + + Task GetRoleCheckListTemplateHeader(int id); Task> GetAllRoleCheckListTemplates(); + Task> UpdateRoleCheckListTemplateHeader(RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO); } } diff --git a/src/WorkFlowCheck.Web/Services/UserService.cs b/src/WorkFlowCheck.Web/Services/UserService.cs index b6c59de..acd16ba 100644 --- a/src/WorkFlowCheck.Web/Services/UserService.cs +++ b/src/WorkFlowCheck.Web/Services/UserService.cs @@ -196,7 +196,7 @@ namespace WorkFlowCheck.Web.Services public async Task GetUserRole(int id) { - string endpoint = $"{_httpClient.BaseAddress}api/UserRole/GetUserRole/{id}"; + string endpoint = $"{_httpClient.BaseAddress}api/user/GetUserRole/{id}"; var retVal = new UserRoleDTO(); try { @@ -265,6 +265,27 @@ namespace WorkFlowCheck.Web.Services } } + public async Task GetRoleCheckListTemplateHeader(int id) + { + string endpoint = $"{_httpClient.BaseAddress}api/user/GetRoleCheckListTemplateHeader/{id}"; + var retVal = new RoleCheckListTemplateHeaderDTO(); + try + { + var response = await _httpClient.GetFromJsonAsync>(endpoint); + if (response != null) + { + if (response.IsSuccess) + { + return response.Data; + } + } + } + catch (Exception ex) + { + Log.Error(ex.Message); + } + return retVal; + } public async Task> GetAllRoleCheckListTemplates() { string endpoint = $"{_httpClient.BaseAddress}api/User/GetAllRoleCheckListTemplateHeaders"; @@ -286,5 +307,33 @@ namespace WorkFlowCheck.Web.Services } return retVal; } + public async Task> UpdateRoleCheckListTemplateHeader(RoleCheckListTemplateHeaderDTO roleCheckListTemplateHeaderDTO) + { + try + { + string endpoint = $"{_httpClient.BaseAddress}api/user/UpdateRoleCheckListTemplateHeader"; + + using (HttpResponseMessage httpResponseMessage = await _httpClient.PostAsJsonAsync(endpoint, roleCheckListTemplateHeaderDTO)) + { + httpResponseMessage.EnsureSuccessStatusCode(); + + var jsonString = await httpResponseMessage.Content.ReadAsStringAsync(); + var response = JsonConvert.DeserializeObject>(jsonString); + + return response ?? new ApiResponseDTO + { + IsSuccess = false, + }; + } + } + catch (Exception ex) + { + // Hiba visszaadása + return new ApiResponseDTO + { + IsSuccess = false + }; + } + } } }