From 08601adc4963a1e1f93b2fbb8bf25b19620c74c2 Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 27 Jun 2025 10:26:56 +0200 Subject: [PATCH] Refactor DocumentController for clarity and updates Updated the DocumentController to use new namespace for constants and added a directive for domain entities. Marked the constructor as obsolete for future MediatR implementation. Refactored Get and Open methods to enhance readability by simplifying error handling. Maintained authorization attributes in their original positions. --- .../Controllers/DocumentController.cs | 111 +++++++++--------- 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/EnvelopeGenerator.Web/Controllers/DocumentController.cs b/EnvelopeGenerator.Web/Controllers/DocumentController.cs index 0670c5af..704559a2 100644 --- a/EnvelopeGenerator.Web/Controllers/DocumentController.cs +++ b/EnvelopeGenerator.Web/Controllers/DocumentController.cs @@ -3,76 +3,77 @@ using EnvelopeGenerator.CommonServices; using EnvelopeGenerator.Web.Services; using Microsoft.AspNetCore.Authorization; using EnvelopeGenerator.Extensions; -using static EnvelopeGenerator.CommonServices.Constants; using EnvelopeGenerator.Application.Contracts.Services; +using static EnvelopeGenerator.Domain.Constants; +using EnvelopeGenerator.Domain.Entities; -namespace EnvelopeGenerator.Web.Controllers +namespace EnvelopeGenerator.Web.Controllers; + +[Authorize(Roles = ReceiverRole.FullyAuth)] +[Route("api/[controller]")] +public class DocumentController : BaseController { - [Authorize(Roles = ReceiverRole.FullyAuth)] - [Route("api/[controller]")] - public class DocumentController : BaseController - { - private readonly EnvelopeOldService envelopeService; - private readonly ActionService? actionService; - private readonly IEnvelopeDocumentService _envDocService; + private readonly EnvelopeOldService envelopeService; + private readonly ActionService? actionService; + [Obsolete("Use MediatR")] + private readonly IEnvelopeDocumentService _envDocService; - public DocumentController(DatabaseService database, EnvelopeOldService envelope, IEnvelopeDocumentService envDocService, ILogger logger) : base(database, logger) - { - envelopeService = envelope; - actionService = database.Services?.actionService; - _envDocService = envDocService; - } + [Obsolete("Use MediatR")] + public DocumentController(DatabaseService database, EnvelopeOldService envelope, IEnvelopeDocumentService envDocService, ILogger logger) : base(database, logger) + { + envelopeService = envelope; + actionService = database.Services?.actionService; + _envDocService = envDocService; + } - [NonAction] - public async Task Get([FromRoute] string envelopeKey, [FromQuery] int index) + [NonAction] + public async Task Get([FromRoute] string envelopeKey, [FromQuery] int index) + { + try { - try - { - // Validate Envelope Key and load envelope - envelopeService.EnsureValidEnvelopeKey(envelopeKey); - EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); + // Validate Envelope Key and load envelope + envelopeService.EnsureValidEnvelopeKey(envelopeKey); + EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); - // Load document info - var document = await envelopeService.GetDocument(index, envelopeKey); + // Load document info + var document = await envelopeService.GetDocument(index, envelopeKey); - // Load the document from disk - var bytes = await envelopeService.GetDocumentContents(document); + // Load the document from disk + var bytes = await envelopeService.GetDocumentContents(document); - // Return the document as bytes - return File(bytes, "application/octet-stream"); - } - catch(Exception ex) - { - _logger.LogError(ex, "{Message}", ex.Message); - return StatusCode(StatusCodes.Status500InternalServerError); - } + // Return the document as bytes + return File(bytes, "application/octet-stream"); } + catch(Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); + } + } - [Authorize(Roles = ReceiverRole.FullyAuth)] - [HttpPost("{envelopeKey}")] - public async Task Open(string envelopeKey) + [Authorize(Roles = ReceiverRole.FullyAuth)] + [HttpPost("{envelopeKey}")] + public async Task Open(string envelopeKey) + { + try { - try - { - var authSignature = this.GetAuthReceiverSignature(); + var authSignature = this.GetAuthReceiverSignature(); - if (authSignature != envelopeKey.GetReceiverSignature()) - return Forbid(); + if (authSignature != envelopeKey.GetReceiverSignature()) + return Forbid(); - // Validate Envelope Key and load envelope - envelopeService.EnsureValidEnvelopeKey(envelopeKey); - EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); + // Validate Envelope Key and load envelope + envelopeService.EnsureValidEnvelopeKey(envelopeKey); + EnvelopeReceiver response = await envelopeService.LoadEnvelope(envelopeKey); - actionService?.OpenEnvelope(response.Envelope, response.Receiver); + actionService?.OpenEnvelope(response.Envelope, response.Receiver); - return Ok(new object()); - } - catch(Exception ex) - { - _logger.LogError(ex, "{Message}", ex.Message); - return StatusCode(StatusCodes.Status500InternalServerError); - } + return Ok(new object()); + } + catch(Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + return StatusCode(StatusCodes.Status500InternalServerError); } - } -} +} \ No newline at end of file