Refactored `DocSignedNotification` to remove inheritance from `EnvelopeReceiverDto` and introduced a required `EnvelopeReceiver` property. Updated all usages across the codebase to align with the new structure, including controllers, handlers, and tests. - Improved encapsulation and reduced coupling by making dependencies explicit. - Updated `AnnotationController`, `DocStatusHandler`, `HistoryHandler`, and `SendSignedMailHandler` to use the `EnvelopeReceiver` property. - Adjusted `DocSignedNotificationTests` to reflect the new instantiation pattern. - Updated XML documentation and ensured consistent access to `EnvelopeReceiver` properties like `EnvelopeId`, `ReceiverId`, and `EmailAddress`.
44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using EnvelopeGenerator.Application.Common.Dto;
|
|
using EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiver;
|
|
using EnvelopeGenerator.Application.Common.Extensions;
|
|
using EnvelopeGenerator.Application.Common.Notifications.RemoveSignature;
|
|
using EnvelopeGenerator.Domain.Constants;
|
|
using MediatR;
|
|
using System.Dynamic;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Notifications.DocSigned;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="Instant"></param>
|
|
/// <param name="Structured"></param>
|
|
public record PsPdfKitAnnotation(ExpandoObject Instant, IEnumerable<AnnotationCreateDto> Structured);
|
|
|
|
/// <summary>
|
|
/// Notification raised when a document is signed by a receiver.
|
|
/// </summary>
|
|
public record DocSignedNotification : INotification, ISendMailNotification
|
|
{
|
|
/// <summary>
|
|
/// The envelope receiver information.
|
|
/// </summary>
|
|
public required EnvelopeReceiverDto EnvelopeReceiver { get; init; }
|
|
|
|
/// <summary>
|
|
/// The PSPDFKit annotation data.
|
|
/// </summary>
|
|
public PsPdfKitAnnotation? PsPdfKitAnnotation { get; init; }
|
|
|
|
/// <summary>
|
|
/// Gets the email template type.
|
|
/// </summary>
|
|
public EmailTemplateType TemplateType => EmailTemplateType.DocumentSigned;
|
|
|
|
/// <summary>
|
|
/// Gets the email address of the receiver.
|
|
/// </summary>
|
|
public string EmailAddress => EnvelopeReceiver.Receiver?.EmailAddress
|
|
?? throw new InvalidOperationException($"Receiver is null." +
|
|
$"DocSignedNotification:\n{this.ToJson(Format.Json.ForDiagnostics)}");
|
|
} |