From 6f73ba929c54f33b8f9e2828e5a4a5d755408579 Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 27 Jun 2025 13:51:51 +0200 Subject: [PATCH] Refactor controllers and update envelope status handling - Updated `TestEnvelopeHistoryController` to use `EnvelopeStatus` for status parameters and marked it as obsolete. - Modified `TestViewController` with new route attributes, simplified constructor, and improved error handling in HTTP methods. - Cleaned up `DebugEnvelopes.cshtml` by removing unnecessary using directives and ensuring type safety in envelope grouping. --- .../Test/TestEnvelopeHistoryController.cs | 6 +- .../Controllers/Test/TestViewController.cs | 81 +++++++++---------- .../Views/TestView/DebugEnvelopes.cshtml | 6 +- 3 files changed, 47 insertions(+), 46 deletions(-) diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs index c840b2fe..be64d0fe 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeHistoryController.cs @@ -3,9 +3,11 @@ using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Application.DTOs.EnvelopeHistory; using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Mvc; +using static EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Web.Controllers.Test; +[Obsolete("Use MediatR")] public class TestEnvelopeHistoryController : CRUDControllerBase { public TestEnvelopeHistoryController(ILogger logger, IEnvelopeHistoryService service) : base(logger, service) @@ -13,7 +15,7 @@ public class TestEnvelopeHistoryController : CRUDControllerBase Count(int? envelopeId = null, string? userReference = null, int? status = null) + public async Task Count(int? envelopeId = null, string? userReference = null, EnvelopeStatus? status = null) { return Ok(await _service.CountAsync(envelopeId, userReference, status)); } @@ -25,7 +27,7 @@ public class TestEnvelopeHistoryController : CRUDControllerBase GetAsyncWith(int? envelopeId = null, string? userReference = null, int? status = null) + public async Task GetAsyncWith(int? envelopeId = null, string? userReference = null, EnvelopeStatus? status = null) { return Ok(await _service.ReadAsync(envelopeId: envelopeId, userReference: userReference, status: status)); } diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs index a71dfb64..d18fd1f3 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestViewController.cs @@ -1,56 +1,55 @@ -using EnvelopeGenerator.CommonServices; +using EnvelopeGenerator.Domain.Entities; using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Mvc; -namespace EnvelopeGenerator.Web.Controllers.Test +namespace EnvelopeGenerator.Web.Controllers.Test; + +[Route("api/test/[controller]")] +public class TestViewController : BaseController { - [Route("api/test/[controller]")] - public class TestViewController : BaseController + private readonly EnvelopeOldService envelopeOldService; + private readonly IConfiguration _config; + + public TestViewController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger logger, IConfiguration configuration) : base(databaseService, logger) { - private readonly EnvelopeOldService envelopeOldService; - private readonly IConfiguration _config; + this.envelopeOldService = envelopeOldService; + _config = configuration; + } - public TestViewController(DatabaseService databaseService, EnvelopeOldService envelopeOldService, ILogger logger, IConfiguration configuration) : base(databaseService, logger) - { - this.envelopeOldService = envelopeOldService; - _config = configuration; - } + [HttpGet] + public IActionResult Index() + { + return View("AnnotationIndex"); + } - [HttpGet] - public IActionResult Index() + [HttpPost] + public IActionResult DebugEnvelopes([FromForm] string? password) + { + try { - return View("AnnotationIndex"); - } + var passwordFromConfig = _config["AdminPassword"]; - [HttpPost] - public IActionResult DebugEnvelopes([FromForm] string? password) - { - try + if (passwordFromConfig == null) { - var passwordFromConfig = _config["AdminPassword"]; - - if (passwordFromConfig == null) - { - ViewData["error"] = "No admin password configured!"; - return View("AnnotationIndex"); - } - - if (password != passwordFromConfig) - { - ViewData["error"] = "Wrong Password!"; - return View("AnnotationIndex"); - } - - List envelopes = envelopeOldService.LoadEnvelopes(); + ViewData["error"] = "No admin password configured!"; + return View("AnnotationIndex"); + } - return View("DebugEnvelopes", envelopes); - } - catch(Exception ex) + if (password != passwordFromConfig) { - _logger.LogError(ex, "Unexpected error"); - ViewData["error"] = "Unknown error!"; + ViewData["error"] = "Wrong Password!"; return View("AnnotationIndex"); - } - } + } + + List envelopes = envelopeOldService.LoadEnvelopes(); + + return View("DebugEnvelopes", envelopes); + } + catch(Exception ex) + { + _logger.LogError(ex, "Unexpected error"); + ViewData["error"] = "Unknown error!"; + return View("AnnotationIndex"); + } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml b/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml index d2e92c3d..96e9df83 100644 --- a/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml +++ b/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml @@ -1,5 +1,5 @@ @using EnvelopeGenerator.CommonServices; -@using EnvelopeGenerator.Domain; +@using EnvelopeGenerator.Domain.Entities; @using static EnvelopeGenerator.Domain.Constants; @{ ViewData["Title"] = "Debug"; @@ -12,9 +12,9 @@ return Helpers.EncodeEnvelopeReceiverId(envelope.Uuid, receiver.Signature); } - IEnumerable> groupEnvelopes(List envelopes) + IEnumerable> groupEnvelopes(List envelopes) { - return envelopes.GroupBy(item => item.Status).OrderBy(item => (int)item.Key); + return envelopes.GroupBy(item => (EnvelopeStatus) item.Status).OrderBy(item => item.Key); } }