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`.
70 lines
2.9 KiB
C#
70 lines
2.9 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.EnvelopeReceiver.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.EnvelopeReceiver.Name ?? string.Empty },
|
|
{ "[DOCUMENT_TITLE]", notification.EnvelopeReceiver.Envelope?.Title ?? string.Empty },
|
|
};
|
|
|
|
if (notification.EnvelopeReceiver.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;
|
|
}
|
|
} |