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

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

View File

@ -1,6 +1,8 @@
using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Domain.Entities;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using EnvelopeGenerator.Domain.Interfaces;
#if NETFRAMEWORK #if NETFRAMEWORK
using System; using System;
#endif #endif
@ -13,7 +15,7 @@ namespace EnvelopeGenerator.Domain.Entities
#endif #endif
[Table("TBSIG_ENVELOPE_HISTORY", Schema = "dbo")] [Table("TBSIG_ENVELOPE_HISTORY", Schema = "dbo")]
public class EnvelopeHistory public class EnvelopeHistory : IHasEnvelope, IHasReceiver
{ {
[Key] [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
@ -47,6 +49,14 @@ public class EnvelopeHistory
#endif #endif
Comment { get; set; } Comment { get; set; }
[ForeignKey("EnvelopeId")]
public virtual Envelope
#if NET
?
#endif
Envelope { get; set; }
[ForeignKey("UserReference")]
public virtual User public virtual User
#if NET #if NET
? ?
@ -54,6 +64,7 @@ public class EnvelopeHistory
Sender Sender
{ get; set; } { get; set; }
[ForeignKey("UserReference")]
public virtual Receiver public virtual Receiver
#if NET #if NET
? ?