using EnvelopeGenerator.Domain.Constants; using MediatR; using Microsoft.Extensions.Logging; namespace EnvelopeGenerator.Application.Pdf.Behaviors; /// /// /// public class SendEmailBehavior : IPipelineBehavior { private readonly ILogger _logger; /// /// /// /// public SendEmailBehavior(ILogger logger) { _logger = logger; } /// /// /// /// /// /// /// public async Task Handle(BurnPdfCommand request, RequestHandlerDelegate next, CancellationToken cancel) { var docResult = await next(cancel); var mailToCreator = request.Envelope!.FinalEmailToCreator; var mailToReceivers = request.Envelope.FinalEmailToReceivers; if (mailToCreator is not null && mailToCreator != (int)FinalEmailType.No) { _logger.LogDebug("Sending email to creator ..."); SendFinalEmailToCreator(request.Envelope); // , pAttachment } else { _logger.LogWarning("No SendFinalEmailToCreator - mailToCreator [{mailToCreator}] <> [{FinalEmailType.No}] ", mailToCreator, FinalEmailType.No); } if (mailToReceivers != (int)FinalEmailType.No) { _logger.LogDebug("Sending emails to receivers..."); SendFinalEmailToReceivers(request.Envelope); // , pAttachment } else { _logger.LogWarning("No SendFinalEmailToReceivers - mailToReceivers [{mailToReceivers}] <> [{FinalEmailType.No}] ", mailToReceivers, FinalEmailType.No); } return docResult; } }