diff --git a/src/WorkFlowCheck.API/Controllers/CheckListController.cs b/src/WorkFlowCheck.API/Controllers/CheckListController.cs index 18dd1a7..d8615c1 100644 --- a/src/WorkFlowCheck.API/Controllers/CheckListController.cs +++ b/src/WorkFlowCheck.API/Controllers/CheckListController.cs @@ -130,8 +130,25 @@ namespace WorkFlowCheck.API.Controllers } return retVal; } + [HttpPost("CloseCheckListHeader")] + public async Task> CloseCheckListHeader([FromBody] CheckListHeaderCloseDTO checkListHeaderCloseDTO) + { + var retVal = new ApiResponseDTO() { IsSuccess = false }; + + try + { + var result = await _checkListService.CloseCheckListHeader(checkListHeaderCloseDTO); + retVal.Data = result; + + } + catch (Exception ex) + { + retVal.IsSuccess = false; + Log.Error(ex.Message); + } + return retVal; + } - [HttpGet("AcceptCheckListHeader/{id}/{userId}")] public async Task> AcceptCheckListHeader(int id, int userId) { diff --git a/src/WorkFlowCheck.BL/Services/CheckListService.cs b/src/WorkFlowCheck.BL/Services/CheckListService.cs index 518d2e6..ffd763f 100644 --- a/src/WorkFlowCheck.BL/Services/CheckListService.cs +++ b/src/WorkFlowCheck.BL/Services/CheckListService.cs @@ -1,5 +1,6 @@ using AutoMapper; using DocumentFormat.OpenXml.Office.CustomUI; +using DocumentFormat.OpenXml.Office2010.Excel; using DocumentFormat.OpenXml.Spreadsheet; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; @@ -362,7 +363,38 @@ namespace WorkFlowCheck.BL.Services } return retVal; } + public async Task CloseCheckListHeader(CheckListHeaderCloseDTO closeCheckListHeaderCloseDTO) + { + var retVal = false; + try + { + var checkListHeader = await _dbContext.CheckListHeaders + .Where(w => w.Id == closeCheckListHeaderCloseDTO.Id && + (w.CheckStatus == CheckStatus.Blocked || + w.CheckStatus == CheckStatus.InProgress || + w.CheckStatus == CheckStatus.Open + )) + .FirstOrDefaultAsync(); + if (checkListHeader != null) + { + checkListHeader.CheckStatus = CheckStatus.Closed; + checkListHeader.IsEditable = true; + + Log.Warning($"Ellenőrzési lap lezárva: Ellenőrzés:{closeCheckListHeaderCloseDTO.Id}, " + + $" Felhasználó:{closeCheckListHeaderCloseDTO.UserId}"); + + await _dbContext.SaveChangesAsync(); + retVal = true; + } + } + catch (Exception ex) + { + retVal = false; + Log.Error(ex.Message); + } + return retVal; + } public async Task GetCheckListTemplateHeaderAsync(int Id) { var retVal = new CheckListTemplateHeaderDTO() diff --git a/src/WorkFlowCheck.BL/Services/Interfaces/ICheckListService.cs b/src/WorkFlowCheck.BL/Services/Interfaces/ICheckListService.cs index dc70009..5d8f237 100644 --- a/src/WorkFlowCheck.BL/Services/Interfaces/ICheckListService.cs +++ b/src/WorkFlowCheck.BL/Services/Interfaces/ICheckListService.cs @@ -11,6 +11,7 @@ namespace WorkFlowCheck.BL.Services.Interfaces Task AcceptCheckListHeaderAsync(int id, int userid); Task BlockCheckListHeaderAsync(int id, int userid); Task UnBlockCheckListHeaderAsync(int id, int userid); + Task CloseCheckListHeader(CheckListHeaderCloseDTO closeCheckListHeaderCloseDTO); Task CreateCheckListHeaderPDFAsync(int checkListHeaderId); Task StartNewCheckListAsync(CheckListHeaderNewDTO checkListHeaderNewDTO); diff --git a/src/WorkFlowCheck.Common/DTO/CheckListHeaderCloseDTO.cs b/src/WorkFlowCheck.Common/DTO/CheckListHeaderCloseDTO.cs new file mode 100644 index 0000000..17f0983 --- /dev/null +++ b/src/WorkFlowCheck.Common/DTO/CheckListHeaderCloseDTO.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WorkFlowCheck.Common.DTO +{ + public class CheckListHeaderCloseDTO + { + public int Id { get; set; } + public string CloseReason { get; set; } = null!; + public int UserId { get; set; } + } +} diff --git a/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderPage.cshtml b/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderPage.cshtml index 01829d7..08edf2f 100644 --- a/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderPage.cshtml +++ b/src/WorkFlowCheck.Web/Pages/CheckList/CheckListHeader/CheckListHeaderPage.cshtml @@ -2,11 +2,13 @@ @model WorkFlowCheck.Web.Pages.CheckList.CheckListHeader.CheckListHeaderPageModel @using WorkFlowCheck.Common.Helper @using WorkFlowCheck.Common.DTO +@using Microsoft.AspNetCore.Antiforgery +@inject IAntiforgery Antiforgery @{ ViewData["Title"] = "Ellenőrzések"; }

@ViewData["Title"]

- +
+ + +