Added logic to set email template placeholders based on whether the envelope requires "Read and Confirm" or "Sign" actions. Placeholders such as [SIGNATURE_TYPE], [DOCUMENT_PROCESS], [FINAL_STATUS], [FINAL_ACTION], [REJECTED_BY_OTHERS], and [RECEIVER_ACTION] are now dynamically set to reflect the correct process and status, improving the accuracy and clarity of notification emails.
70 lines
2.8 KiB
C#
70 lines
2.8 KiB
C#
using DigitalData.Core.Abstraction.Application.Repository;
|
|
using DigitalData.EmailProfilerDispatcher.Abstraction.Entities;
|
|
using EnvelopeGenerator.Application.Common.Configurations;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using Microsoft.Extensions.Options;
|
|
using EnvelopeGenerator.Domain.Interfaces;
|
|
|
|
namespace EnvelopeGenerator.Application.Common.Notifications.DocSigned.Handlers;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public class SendSignedMailHandler : SendMailHandler<DocSignedNotification>
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="tempRepo"></param>
|
|
/// <param name="emailOutRepo"></param>
|
|
/// <param name="mailParamsOptions"></param>
|
|
/// <param name="dispatcherParamsOptions"></param>
|
|
public SendSignedMailHandler(IRepository<EmailTemplate> tempRepo, IRepository<EmailOut> emailOutRepo, IOptions<MailParams> mailParamsOptions, IOptions<DispatcherParams> dispatcherParamsOptions) : base(tempRepo, emailOutRepo, mailParamsOptions, dispatcherParamsOptions)
|
|
{
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="notification"></param>
|
|
/// <param name="emailOut"></param>
|
|
protected override void ConfigureEmailOut(DocSignedNotification notification, EmailOut emailOut)
|
|
{
|
|
emailOut.ReferenceString = notification.EmailAddress;
|
|
emailOut.ReferenceId = notification.ReceiverId;
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <param name="notification"></param>
|
|
/// <returns></returns>
|
|
protected override Dictionary<string, string> CreatePlaceHolders(DocSignedNotification notification)
|
|
{
|
|
var placeHolders = new Dictionary<string, string>()
|
|
{
|
|
{ "[NAME_RECEIVER]", notification.Name ?? string.Empty },
|
|
{ "[DOCUMENT_TITLE]", notification.Envelope?.Title ?? string.Empty },
|
|
};
|
|
|
|
if (notification.Envelope.IsReadAndConfirm())
|
|
{
|
|
placeHolders["[SIGNATURE_TYPE]"] = "Lesen und bestätigen";
|
|
placeHolders["[DOCUMENT_PROCESS]"] = string.Empty;
|
|
placeHolders["[FINAL_STATUS]"] = "Lesebestätigung";
|
|
placeHolders["[FINAL_ACTION]"] = "Empfänger bestätigt";
|
|
placeHolders["[REJECTED_BY_OTHERS]"] = "anderen Empfänger abgelehnt!";
|
|
placeHolders["[RECEIVER_ACTION]"] = "bestätigt";
|
|
}
|
|
else
|
|
{
|
|
placeHolders["[SIGNATURE_TYPE]"] = "Signieren";
|
|
placeHolders["[DOCUMENT_PROCESS]"] = " und elektronisch unterschreiben";
|
|
placeHolders["[FINAL_STATUS]"] = "Signatur";
|
|
placeHolders["[FINAL_ACTION]"] = "Vertragspartner unterzeichnet";
|
|
placeHolders["[REJECTED_BY_OTHERS]"] = "anderen Vertragspartner abgelehnt! Ihre notwendige Unterzeichnung wurde verworfen.";
|
|
placeHolders["[RECEIVER_ACTION]"] = "unterschrieben";
|
|
}
|
|
|
|
return placeHolders;
|
|
}
|
|
} |