From c456cb03019ec49c32cef4224d5180afd6bba080 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 27 Aug 2025 14:41:20 +0200 Subject: [PATCH] refactor(CreateHistoryCommand); update to use EnvelopeReceiverQueryBase and related extension methods --- .../Commands/CreateHistoryCommand.cs | 31 +++++++++---------- .../Entities/EnvelopeHistory.cs | 15 +++++++-- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/EnvelopeGenerator.Application/Histories/Commands/CreateHistoryCommand.cs b/EnvelopeGenerator.Application/Histories/Commands/CreateHistoryCommand.cs index 80ebc3d7..efa9aa79 100644 --- a/EnvelopeGenerator.Application/Histories/Commands/CreateHistoryCommand.cs +++ b/EnvelopeGenerator.Application/Histories/Commands/CreateHistoryCommand.cs @@ -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; /// /// /// -public record CreateHistoryCommand : IRequest +public record CreateHistoryCommand: EnvelopeReceiverQueryBase, IRequest { /// /// /// - public int EnvelopeId { get; set; } + public int? EnvelopeId { get; set; } /// /// /// - public string UserReference { get; set; } = null!; + public string? UserReference { get; set; } /// /// @@ -41,16 +42,6 @@ public record CreateHistoryCommand : IRequest /// /// public string? Comment { get; set; } - - /// - /// - /// - public EnvelopeQueryBase? Envelope { get; init; } - - /// - /// / - /// - public ReceiverQueryBase? Receiver { get; init; } } /// @@ -81,9 +72,17 @@ public class CreateHistoryCommandHandler : IRequestHandler 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); diff --git a/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs b/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs index 4a6d0399..611b3e4b 100644 --- a/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs +++ b/EnvelopeGenerator.Domain/Entities/EnvelopeHistory.cs @@ -1,6 +1,8 @@ using DigitalData.UserManager.Domain.Entities; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using EnvelopeGenerator.Domain.Interfaces; + #if NETFRAMEWORK using System; #endif @@ -13,7 +15,7 @@ namespace EnvelopeGenerator.Domain.Entities #endif [Table("TBSIG_ENVELOPE_HISTORY", Schema = "dbo")] -public class EnvelopeHistory +public class EnvelopeHistory : IHasEnvelope, IHasReceiver { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] @@ -39,7 +41,7 @@ public class EnvelopeHistory [Column("ACTION_DATE", TypeName = "datetime")] public DateTime? ActionDate { get; set; } = DateTime.Now; - + [Column("COMMENT", TypeName = "nvarchar(max)")] public string #if NET @@ -47,6 +49,14 @@ public class EnvelopeHistory #endif Comment { get; set; } + [ForeignKey("EnvelopeId")] + public virtual Envelope +#if NET + ? +#endif + Envelope { get; set; } + + [ForeignKey("UserReference")] public virtual User #if NET ? @@ -54,6 +64,7 @@ public class EnvelopeHistory Sender { get; set; } + [ForeignKey("UserReference")] public virtual Receiver #if NET ?