refactor(CreateHistoryCommand); update to use EnvelopeReceiverQueryBase and related extension methods

This commit is contained in:
2025-08-27 14:41:20 +02:00
parent 1c0c23aca4
commit c456cb0301
2 changed files with 28 additions and 18 deletions

View File

@@ -4,23 +4,24 @@ using EnvelopeGenerator.Domain;
using EnvelopeGenerator.Domain.Entities;
using MediatR;
using Microsoft.EntityFrameworkCore;
using EnvelopeGenerator.Application.Extensions;
namespace EnvelopeGenerator.Application.Histories.Commands;
/// <summary>
///
/// </summary>
public record CreateHistoryCommand : IRequest<long?>
public record CreateHistoryCommand: EnvelopeReceiverQueryBase, IRequest<long?>
{
/// <summary>
///
/// </summary>
public int EnvelopeId { get; set; }
public int? EnvelopeId { get; set; }
/// <summary>
///
/// </summary>
public string UserReference { get; set; } = null!;
public string? UserReference { get; set; }
/// <summary>
///
@@ -41,16 +42,6 @@ public record CreateHistoryCommand : IRequest<long?>
///
/// </summary>
public string? Comment { get; set; }
/// <summary>
///
/// </summary>
public EnvelopeQueryBase? Envelope { get; init; }
/// <summary>
/// /
/// </summary>
public ReceiverQueryBase? Receiver { get; init; }
}
/// <summary>
@@ -81,9 +72,17 @@ public class CreateHistoryCommandHandler : IRequestHandler<CreateHistoryCommand,
await _repo.CreateAsync(request, cancel);
// check if created
var record = await _repo.ReadOnly()
.Where(h => h.EnvelopeId == request.EnvelopeId)
.Where(h => h.UserReference == request.UserReference)
var query = _repo.ReadOnly();
query = request.EnvelopeId is null
? query.Where(request.Envelope)
: query.Where(h => h.EnvelopeId == request.EnvelopeId);
query = request.UserReference is null
? query.Where(request.Receiver)
: query.Where(h => h.UserReference == request.UserReference);
var record = await query
.Where(h => h.ActionDate == request.ActionDate)
.SingleOrDefaultAsync(cancel);