From fcbe956095b7064af47f85896064de06c9a92500 Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 27 Jun 2025 13:24:12 +0200 Subject: [PATCH] Refactor controllers and views for MediatR integration Updated several C# controllers to use the new `DigitalData.Core.Abstraction.Application.DTO` namespace and removed references to `DigitalData.Core.DTO`. Added `[Obsolete("Use MediatR")]` attributes to indicate a shift towards MediatR for request handling. Improved error handling and code organization in key methods. Updated Razor view files to reflect namespace changes for consistency across the application. --- .../Controllers/TFARegController.cs | 8 +- .../Test/TestEnvelopeReceiverController.cs | 94 +++++++++---------- .../Test/TestEnvelopeTypeController.cs | 1 + .../Test/TestUserReceiverController.cs | 10 +- .../Views/Home/EnvelopeRejected.cshtml | 2 +- .../Views/Home/ShowEnvelope.cshtml | 2 +- .../Views/TestView/DebugEnvelopes.cshtml | 3 +- 7 files changed, 63 insertions(+), 57 deletions(-) diff --git a/EnvelopeGenerator.Web/Controllers/TFARegController.cs b/EnvelopeGenerator.Web/Controllers/TFARegController.cs index a0f87ce3..524c219f 100644 --- a/EnvelopeGenerator.Web/Controllers/TFARegController.cs +++ b/EnvelopeGenerator.Web/Controllers/TFARegController.cs @@ -4,25 +4,28 @@ using Microsoft.AspNetCore.Mvc; using EnvelopeGenerator.Extensions; using Microsoft.Extensions.Localization; using EnvelopeGenerator.Application.Resources; -using DigitalData.Core.DTO; using EnvelopeGenerator.Application.Extensions; using Microsoft.Extensions.Options; using Microsoft.AspNetCore.Authorization; -using static EnvelopeGenerator.CommonServices.Constants; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authentication; using EnvelopeGenerator.Application.Contracts.Services; +using DigitalData.Core.Abstraction.Application.DTO; +using static EnvelopeGenerator.Domain.Constants; namespace EnvelopeGenerator.Web.Controllers; //TODO: Add authorization as well as limiting the link duration (intermediate token with different role) or sign it public class TFARegController : ViewControllerBase { + [Obsolete("Use MediatR")] private readonly IEnvelopeReceiverService _envRcvService; private readonly IAuthenticator _authenticator; + [Obsolete("Use MediatR")] private readonly IReceiverService _rcvService; private readonly TFARegParams _params; + [Obsolete("Use MediatR")] public TFARegController(ILogger logger, HtmlSanitizer sanitizer, Cultures cultures, IStringLocalizer localizer, IEnvelopeReceiverService erService, IAuthenticator authenticator, IReceiverService receiverService, IOptions tfaRegParamsOptions) : base(logger, sanitizer, cultures, localizer) { _envRcvService = erService; @@ -34,6 +37,7 @@ public class TFARegController : ViewControllerBase //TODO: move under auth route [Authorize] [HttpGet("tfa/{envelopeReceiverId}")] + [Obsolete("Use MediatR")] public async Task Reg(string envelopeReceiverId) { try diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs index be8362c5..8a404d9f 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeReceiverController.cs @@ -1,66 +1,66 @@ using DigitalData.Core.API; -using DigitalData.Core.DTO; using EnvelopeGenerator.Extensions; using EnvelopeGenerator.Domain.Entities; using Microsoft.AspNetCore.Mvc; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver; using EnvelopeGenerator.Application.Contracts.Services; +using DigitalData.Core.Abstraction.Application.DTO; -namespace EnvelopeGenerator.Web.Controllers.Test +namespace EnvelopeGenerator.Web.Controllers.Test; + +[Obsolete("Use MediatR")] +public class TestEnvelopeReceiverController : ReadControllerBase { - public class TestEnvelopeReceiverController : ReadControllerBase + public TestEnvelopeReceiverController(ILogger logger, IEnvelopeReceiverService service) : base(logger, service) { - public TestEnvelopeReceiverController(ILogger logger, IEnvelopeReceiverService service) : base(logger, service) - { - } + } - [HttpGet("verify-access-code/{envelope_receiver_id}")] - public async Task VerifyAccessCode([FromRoute] string envelope_receiver_id, [FromQuery] string access_code) - { - var verification = await _service.VerifyAccessCodeAsync(envelopeReceiverId:envelope_receiver_id, accessCode: access_code); + [HttpGet("verify-access-code/{envelope_receiver_id}")] + public async Task VerifyAccessCode([FromRoute] string envelope_receiver_id, [FromQuery] string access_code) + { + var verification = await _service.VerifyAccessCodeAsync(envelopeReceiverId:envelope_receiver_id, accessCode: access_code); - if (verification.IsSuccess) - return Ok(verification); - else if (verification.HasFlag(Flag.SecurityBreach)) - return Forbid(); - else if (verification.HasFlag(Flag.SecurityBreachOrDataIntegrity)) - return Conflict(); - else - return this.InnerServiceError(verification); - } + if (verification.IsSuccess) + return Ok(verification); + else if (verification.HasFlag(Flag.SecurityBreach)) + return Forbid(); + else if (verification.HasFlag(Flag.SecurityBreachOrDataIntegrity)) + return Conflict(); + else + return this.InnerServiceError(verification); + } - [HttpGet("e-r-id/{envelope_receiver_id}")] - public async Task GetByEnvelopeReceiverId([FromRoute] string envelope_receiver_id) - { - var er_result = await _service.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelope_receiver_id); - if (er_result.IsSuccess) - return Ok(er_result); - else - return this.InnerServiceError(er_result); - } + [HttpGet("e-r-id/{envelope_receiver_id}")] + public async Task GetByEnvelopeReceiverId([FromRoute] string envelope_receiver_id) + { + var er_result = await _service.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelope_receiver_id); + if (er_result.IsSuccess) + return Ok(er_result); + else + return this.InnerServiceError(er_result); + } - [HttpGet("decode")] - public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId, bool isReadOnly = false) + [HttpGet("decode")] + public IActionResult DecodeEnvelopeReceiverId(string envelopeReceiverId, bool isReadOnly = false) + { + if (isReadOnly) { - if (isReadOnly) - { - var readOnlyId = envelopeReceiverId.DecodeEnvelopeReceiverReadOnlyId(); - return Ok(new { readOnlyId }); - } - else - { - var (EnvelopeUuid, ReceiverSignature) = envelopeReceiverId.DecodeEnvelopeReceiverId(); - return Ok(new { uuid = EnvelopeUuid, signature = ReceiverSignature }); - } + var readOnlyId = envelopeReceiverId.DecodeEnvelopeReceiverReadOnlyId(); + return Ok(new { readOnlyId }); } - - [HttpGet("encode")] - public IActionResult EncodeEnvelopeReceiverId(string? uuid = null, string? signature = null, long? readOnlyId = null) + else { - if(readOnlyId is long readOnlyId_long) - return Ok(readOnlyId_long.EncodeEnvelopeReceiverId()); - else - return Ok((uuid ?? string.Empty, signature ?? string.Empty).EncodeEnvelopeReceiverId()); + var (EnvelopeUuid, ReceiverSignature) = envelopeReceiverId.DecodeEnvelopeReceiverId(); + return Ok(new { uuid = EnvelopeUuid, signature = ReceiverSignature }); } } + + [HttpGet("encode")] + public IActionResult EncodeEnvelopeReceiverId(string? uuid = null, string? signature = null, long? readOnlyId = null) + { + if(readOnlyId is long readOnlyId_long) + return Ok(readOnlyId_long.EncodeEnvelopeReceiverId()); + else + return Ok((uuid ?? string.Empty, signature ?? string.Empty).EncodeEnvelopeReceiverId()); + } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs index 93cc9253..20f162fc 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestEnvelopeTypeController.cs @@ -4,6 +4,7 @@ using EnvelopeGenerator.Domain.Entities; namespace EnvelopeGenerator.Web.Controllers.Test; +[Obsolete("Use MediatR")] public class TestEnvelopeTypeController : TestControllerBase { public TestEnvelopeTypeController(ILogger logger, IEnvelopeTypeService service) : base(logger, service) diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs index 98af1632..c4af2335 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestUserReceiverController.cs @@ -2,13 +2,13 @@ using EnvelopeGenerator.Application.DTOs; using EnvelopeGenerator.Domain.Entities; -namespace EnvelopeGenerator.Web.Controllers.Test +namespace EnvelopeGenerator.Web.Controllers.Test; + +[Obsolete("Use MediatR")] +public class TestUserReceiverController : TestControllerBase< IUserReceiverService, UserReceiverDto, UserReceiver, int> { - public class TestUserReceiverController : TestControllerBase< IUserReceiverService, UserReceiverDto, UserReceiver, int> + public TestUserReceiverController(ILogger logger, IUserReceiverService service) : base(logger, service) { - public TestUserReceiverController(ILogger logger, IUserReceiverService service) : base(logger, service) - { - } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml b/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml index f7663271..1492da7c 100644 --- a/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/EnvelopeRejected.cshtml @@ -4,7 +4,7 @@ @{ var nonce = _accessor.HttpContext?.Items["csp-nonce"] as string; } -@using DigitalData.Core.DTO; +@using DigitalData.Core.Abstraction.Application.DTO; @using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver @using Newtonsoft.Json @using Newtonsoft.Json.Serialization diff --git a/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml b/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml index 3eb96719..f99fde39 100644 --- a/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml +++ b/EnvelopeGenerator.Web/Views/Home/ShowEnvelope.cshtml @@ -2,7 +2,7 @@ var nonce = _accessor.HttpContext?.Items["csp-nonce"] as string; var cImg = _cImgOpt.Value; } -@using DigitalData.Core.DTO; +@using DigitalData.Core.Abstraction.Application; @using EnvelopeGenerator.Application.DTOs; @using EnvelopeGenerator.Application.DTOs.EnvelopeReceiver @using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly diff --git a/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml b/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml index cedcd8cd..d2e92c3d 100644 --- a/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml +++ b/EnvelopeGenerator.Web/Views/TestView/DebugEnvelopes.cshtml @@ -1,5 +1,6 @@ @using EnvelopeGenerator.CommonServices; -@using static EnvelopeGenerator.CommonServices.Constants; +@using EnvelopeGenerator.Domain; +@using static EnvelopeGenerator.Domain.Constants; @{ ViewData["Title"] = "Debug"; }