Refactored `DocumentReceivedNotification` to use new properties `Origin`, `EnvelopeUuid`, and `ReceiverSignature` for constructing `EnvelopeURL`. Updated `LinkToDocument` and `LinkToDocumentText` to derive from `EnvelopeURL`. Simplified `CreateEnvelopeCommandHandler` with record-like syntax, removing private fields and directly injecting dependencies. Renamed and refactored `QueueInvitationEmailsAsync` to `SendInvitationEmailsAsync`, using `EnvNtfService.Notify` for email notifications, centralizing logic and improving clarity. Improved error handling in email sending with logging. Updated variable names for clarity and cleaned up `using` directives.
98 lines
2.3 KiB
C#
98 lines
2.3 KiB
C#
using EnvelopeGenerator.Application.Common.Extensions;
|
|
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 Uri Origin { private get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string EnvelopeUuid { private get; init; }
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public required string ReceiverSignature { private get; init; }
|
|
|
|
private Uri EnvelopeURL => new(Origin, $"Envelope/{(EnvelopeUuid, ReceiverSignature).ToEnvelopeKey()}");
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string LinkToDocument => EnvelopeURL.AbsoluteUri;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public string LinkToDocumentText
|
|
{
|
|
get
|
|
{
|
|
var urlText = EnvelopeURL.ToString();
|
|
return $"{urlText[..Math.Min(urlText.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;
|
|
}
|
|
} |