From c812d4dc1f95d69731bb7d4ea6817b630101e597 Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 26 Oct 2026 15:49:33 +0100 Subject: [PATCH] Refactor EnvelopeController for DI and clarity Refactored the `EnvelopeController` to use C# 9's record syntax for dependency injection, directly injecting `ILogger` and `IMediator` into the constructor. Removed private fields `_logger` and `_mediator`, replacing them with constructor-injected properties. Updated methods to use these properties for consistency. Moved `DeleteEnvelopeRequest` to a top-level class for better organization. Enhanced XML documentation for improved clarity. --- .../Controllers/EnvelopeController.cs | 49 ++++++++++--------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/EnvelopeController.cs index c00db5b5..713f87c2 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/EnvelopeController.cs +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Controllers/EnvelopeController.cs @@ -23,27 +23,16 @@ namespace EnvelopeGenerator.Server.Controllers; /// - 404 Not Found: Die angeforderte Ressource wurde nicht gefunden. /// - 500 Internal Server Error: Ein unerwarteter Fehler ist aufgetreten. /// +/// +/// Erstellt eine neue Instanz des EnvelopeControllers. +/// +/// Der Logger, der für das Protokollieren von Informationen verwendet wird. +/// [Route("api/[controller]")] [ApiController] [Authorize] -public class EnvelopeController : ControllerBase +public class EnvelopeController(ILogger Logger, IMediator Mediator) : ControllerBase { - public record DeleteEnvelopeRequest(string Reason); - - private readonly ILogger _logger; - private readonly IMediator _mediator; - - /// - /// Erstellt eine neue Instanz des EnvelopeControllers. - /// - /// Der Logger, der für das Protokollieren von Informationen verwendet wird. - /// - public EnvelopeController(ILogger logger, IMediator mediator) - { - _logger = logger; - _mediator = mediator; - } - /// /// Ruft eine Liste von Umschlägen basierend auf dem Benutzer und den angegebenen Statusfiltern ab. /// @@ -58,8 +47,8 @@ public class EnvelopeController : ControllerBase [HttpGet] public async Task GetAsync([FromQuery] ReadEnvelopeQuery envelope) { - var result = await _mediator.Send(envelope.Authorize(User.GetId())); - return result.Any() ? Ok(result) : NotFound(); + var result = await Mediator.Send(envelope.Authorize(User.GetId())); + return Ok(result ?? []); } /// @@ -74,7 +63,7 @@ public class EnvelopeController : ControllerBase [HttpGet("doc-result")] public async Task GetDocResultAsync([FromQuery] ReadEnvelopeQuery query, [FromQuery] bool view = false) { - var envelopes = await _mediator.Send(query.Authorize(User.GetId())); + var envelopes = await Mediator.Send(query.Authorize(User.GetId())); var envelope = envelopes.FirstOrDefault(); if (envelope is null) @@ -100,22 +89,34 @@ public class EnvelopeController : ControllerBase [HttpPost] public async Task CreateAsync([FromBody] CreateEnvelopeCommand command) { - var res = await _mediator.Send(command.WithAuth(User.GetId())); + var res = await Mediator.Send(command.WithAuth(User.GetId())); if (res is null) { - _logger.LogError("Failed to create envelope. Envelope details: {EnvelopeDetails}", JsonConvert.SerializeObject(command)); + Logger.LogError("Failed to create envelope. Envelope details: {EnvelopeDetails}", JsonConvert.SerializeObject(command)); return StatusCode(StatusCodes.Status500InternalServerError); } else return Ok(res); } + /// + /// + /// + /// + public record DeleteEnvelopeRequest(string Reason); + + /// + /// + /// + /// + /// + /// [Authorize(AuthenticationSchemes = AuthScheme.Sender)] [HttpDelete("{id:int}")] public async Task DeleteAsync([FromRoute] int id, [FromBody] DeleteEnvelopeRequest request) { - var result = await _mediator.Send(new DeleteEnvelopeCommand + var result = await Mediator.Send(new DeleteEnvelopeCommand { EnvelopeId = id, Reason = request?.Reason ?? string.Empty @@ -133,7 +134,7 @@ public class EnvelopeController : ControllerBase [HttpPost("finalize")] public async Task FinalizeEnvelopeAsync([FromQuery] FinalizeEnvelopeCommand command) { - await _mediator.Send(command.Authorized(User.GetId())); + await Mediator.Send(command.Authorized(User.GetId())); return Ok(); }