Refactor ReadOnlyController to use MediatR

Updated service dependencies to use MediatR, marking
several fields and methods as obsolete. Modified import
statements to include new namespaces and removed old
ones. Adjusted the CreateAsync method to correctly
access IDs and updated the RecordAsync call to use
the new EnvelopeStatus reference. These changes
enhance code maintainability and align with modern
architectural patterns.
This commit is contained in:
tekh 2025-06-27 12:08:30 +02:00
parent 62a73e4967
commit 231140505e

View File

@ -1,10 +1,10 @@
using DigitalData.Core.DTO;
using DigitalData.Core.Abstraction.Application.DTO;
using EnvelopeGenerator.Application.Contracts.Services;
using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using static EnvelopeGenerator.CommonServices.Constants;
using static EnvelopeGenerator.Domain.Constants;
namespace EnvelopeGenerator.Web.Controllers
{
@ -14,12 +14,16 @@ namespace EnvelopeGenerator.Web.Controllers
{
private readonly ILogger<ReadOnlyController> _logger;
[Obsolete("Use MediatR")]
private readonly IEnvelopeReceiverReadOnlyService _erroService;
[Obsolete("Use MediatR")]
private readonly IEnvelopeMailService _mailService;
[Obsolete("Use MediatR")]
private readonly IEnvelopeHistoryService _histService;
[Obsolete("Use MediatR")]
public ReadOnlyController(ILogger<ReadOnlyController> logger, IEnvelopeReceiverReadOnlyService erroService, IEnvelopeMailService mailService, IEnvelopeHistoryService histService)
{
_logger = logger;
@ -30,6 +34,7 @@ namespace EnvelopeGenerator.Web.Controllers
[HttpPost]
[Authorize(Roles = ReceiverRole.FullyAuth)]
[Obsolete("Use MediatR")]
public async Task<IActionResult> CreateAsync([FromBody] EnvelopeReceiverReadOnlyCreateDto createDto)
{
try
@ -62,7 +67,7 @@ namespace EnvelopeGenerator.Web.Controllers
}
//read new entity
var read_res = await _erroService.ReadByIdAsync(creation_res.Data);
var read_res = await _erroService.ReadByIdAsync(creation_res.Data.Id);
if (read_res.IsFailed)
{
_logger.LogNotice(creation_res);
@ -76,7 +81,7 @@ namespace EnvelopeGenerator.Web.Controllers
{
//TODO: implement multi-threading to history process (Task)
//TODO: remove casting after change the id type
var hist_res = await _histService.RecordAsync((int)createDto.EnvelopeId, createDto.AddedWho, Common.Constants.EnvelopeStatus.EnvelopeShared);
var hist_res = await _histService.RecordAsync((int)createDto.EnvelopeId, createDto.AddedWho, EnvelopeStatus.EnvelopeShared);
if (hist_res.IsFailed)
{
_logger.LogError("Although the envelope was sent as read-only, the EnvelopeShared hisotry could not be saved. Create DTO:\n{createDto}", JsonConvert.SerializeObject(createDto));