change LoadEnvelope method

This commit is contained in:
tekh 2025-08-22 20:05:53 +02:00
parent 1577440b77
commit 30e2ac602d
4 changed files with 36 additions and 19 deletions

View File

@ -1,6 +1,7 @@
using EnvelopeGenerator.Application.Dto.EnvelopeReceiver;
using EnvelopeGenerator.Application.Envelopes.Queries;
using EnvelopeGenerator.Application.Exceptions;
using EnvelopeGenerator.Application.Extensions;
using EnvelopeGenerator.Application.Receivers.Queries;
using EnvelopeGenerator.Extensions;
using MediatR;
@ -83,3 +84,12 @@ public record ReadEnvelopeReceiverQuery : IRequest<IEnumerable<EnvelopeReceiverD
/// </summary>
public ReadReceiverQuery? Receiver { get; set; }
};
public static class Extensions
{
public static Task<EnvelopeReceiverDto?> ReadEnvelopeReceiverAsync(this IMediator mediator, string key)
{
var q = new ReadEnvelopeReceiverQuery() { Key = key };
return mediator.Send(q).Then(envRcvs => envRcvs.FirstOrDefault());
}
}

View File

@ -36,4 +36,18 @@ public static class TaskExtensions
var result = await task;
return result?.Any() ?? false ? result : throw new NotFoundException(exceptionMessage);
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="I"></typeparam>
/// <param name="task"></param>
/// <param name="act"></param>
/// <returns></returns>
public static async Task<I> Then<T, I>(this Task<T> task, Func<T, I> act)
{
var res = await task;
return act(res);
}
}

View File

@ -20,6 +20,9 @@ using EnvelopeGenerator.Application.Interfaces.Services;
using static EnvelopeGenerator.Domain.Constants;
using DigitalData.Core.Abstraction.Application.DTO;
using EnvelopeGenerator.Domain.Entities;
using MediatR;
using EnvelopeGenerator.Application.EnvelopeReceivers.Queries;
using EnvelopeGenerator.Application.Extensions;
namespace EnvelopeGenerator.Web.Controllers;
@ -40,8 +43,10 @@ public class HomeController : ViewControllerBase
private readonly IReceiverService _rcvService;
private readonly IEnvelopeSmsHandler _envSmsHandler;
private readonly IMediator _mediator;
[Obsolete("Use MediatR")]
public HomeController(EnvelopeOldService envelopeOldService, ILogger<HomeController> logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeHistoryService historyService, IStringLocalizer<Resource> localizer, IConfiguration configuration, HtmlSanitizer sanitizer, Cultures cultures, IEnvelopeMailService envelopeMailService, IEnvelopeReceiverReadOnlyService readOnlyService, IAuthenticator authenticator, IReceiverService receiverService, IEnvelopeSmsHandler envelopeSmsService) : base(logger, sanitizer, cultures, localizer)
public HomeController(EnvelopeOldService envelopeOldService, ILogger<HomeController> logger, IEnvelopeReceiverService envelopeReceiverService, IEnvelopeHistoryService historyService, IStringLocalizer<Resource> localizer, IConfiguration configuration, HtmlSanitizer sanitizer, Cultures cultures, IEnvelopeMailService envelopeMailService, IEnvelopeReceiverReadOnlyService readOnlyService, IAuthenticator authenticator, IReceiverService receiverService, IEnvelopeSmsHandler envelopeSmsService, IMediator mediator) : base(logger, sanitizer, cultures, localizer)
{
this.envelopeOldService = envelopeOldService;
_envRcvService = envelopeReceiverService;
@ -52,6 +57,7 @@ public class HomeController : ViewControllerBase
_authenticator = authenticator;
_rcvService = receiverService;
_envSmsHandler = envelopeSmsService;
_mediator = mediator;
}
[HttpGet("/")]
@ -103,17 +109,10 @@ public class HomeController : ViewControllerBase
ViewData["EnvelopeKey"] = envelopeReceiverId;
var er_res = await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelopeReceiverId);
var er = await _mediator.ReadEnvelopeReceiverAsync(envelopeReceiverId);
if (er_res.IsFailed)
{
_logger.LogNotice(er_res.Notices);
if (er is null)
return this.ViewEnvelopeNotFound();
}
var er = er_res.Data;
EnvelopeReceiver response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
bool accessCodeAlreadyRequested = await _historyService.AccessCodeAlreadyRequested(envelopeId: er.Envelope!.Id, userReference: er.Receiver!.EmailAddress);
if (!accessCodeAlreadyRequested)
@ -190,9 +189,6 @@ public class HomeController : ViewControllerBase
_logger.LogInformation("Envelope UUID: [{uuid}]\nReceiver Signature: [{signature}]", uuid, signature);
//check access code
EnvelopeReceiver response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
//check rejection
var rejRcvrs = await _historyService.ReadRejectingReceivers(er.Envelope!.Id);
if (rejRcvrs.Any())
@ -352,9 +348,6 @@ public class HomeController : ViewControllerBase
_logger.LogInformation("Envelope UUID: [{uuid}]\nReceiver Signature: [{signature}]", uuid, signature);
//check access code
EnvelopeReceiver response = await envelopeOldService.LoadEnvelope(envelopeReceiverId);
var er_secret_res = await _envRcvService.ReadWithSecretByUuidSignatureAsync(uuid: uuid, signature: signature);
if (er_secret_res.IsFailed)

View File

@ -9,16 +9,16 @@ using EnvelopeGenerator.Application.Extensions;
namespace EnvelopeGenerator.Web.Controllers.Test;
[Route("test/[controller]")]
[Route("api/test/[controller]")]
[ApiController]
public class EnvelopeReceiverController : ControllerBase
public class TestEnvelopeReceiverController : ControllerBase
{
private readonly IMediator _mediator;
[Obsolete("Use MediatR")]
private readonly IEnvelopeReceiverService _service;
[Obsolete("Use MediatR")]
public EnvelopeReceiverController(ILogger<EnvelopeReceiverController> logger, IEnvelopeReceiverService service, IMediator mediator, IEnvelopeReceiverService erService)
public TestEnvelopeReceiverController(ILogger<TestEnvelopeReceiverController> logger, IEnvelopeReceiverService service, IMediator mediator, IEnvelopeReceiverService erService)
{
_mediator = mediator;
_service = erService;