Introduced `EnvelopeNotificationBase` as a new base class for notifications, providing a unified structure with an abstract `GetTemplateType` method and optional attachments. Added `DocumentReceivedNotification` and updated `DocumentSignedNotification` to inherit from this base class, streamlining attachment handling and template type determination. Refactored `IEnvelopeNotificationService` to use a generic `Notify` method, allowing for flexibility with different notification types. Updated `FinalizeEnvelopeCommandHandler` to align with the new attachment handling. Added `EnvelopeNotificationExtensions` for converting attachments to `EmailAttachmentDto` objects and introduced `ReplacePlaceholderExtensions` for dynamic placeholder replacement in email templates using reflection. Removed outdated placeholder logic from `EnvelopeNotificationService`.
73 lines
1.7 KiB
C#
73 lines
1.7 KiB
C#
using EnvelopeGenerator.Domain.Constants;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Interfaces.Services.Notification;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public record DocumentReceivedNotification : EnvelopeNotificationBase
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string DocumentTitle { get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string NameReceiver { get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string NameSender { get; init; }
|
|
|
|
/// <summary>
|
|
/// [SIGNATURE_TYPE]
|
|
/// </summary>
|
|
public required bool IsReadAndConfirm { private get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string SignatureType => IsReadAndConfirm ? "Signieren" : "Lesen und bestätigen";
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required bool AdvancedSignature { private get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string DocumentProcess => AdvancedSignature ? " und elektronisch unterschreiben" : string.Empty;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string LinkToDocument { get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string LinkToDocumentText => LinkToDocument[..Math.Min(LinkToDocument.Length, 40)];
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string Message { get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string NamePortal { get; set; } = "signFLOW Portal";
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public override EmailTemplateType GetTemplateType()
|
|
{
|
|
return EmailTemplateType.DocumentReceived;
|
|
}
|
|
} |