From 85cacc822d687f1e29465035d7f10171809d33c0 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Wed, 11 Dec 2024 12:14:10 +0100 Subject: [PATCH] =?UTF-8?q?feat(EnvelopeMailService):=20Optionale=20Platzh?= =?UTF-8?q?alter=20als=20W=C3=B6rterbuch=20hinzugef=C3=BCgt.=20=20-=20Als?= =?UTF-8?q?=20Standard=20ist=20es=20null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Contracts/IEnvelopeMailService.cs | 4 ++-- .../Services/EnvelopeMailService.cs | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs b/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs index 06a4ab18..23c86e32 100644 --- a/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Contracts/IEnvelopeMailService.cs @@ -10,8 +10,8 @@ namespace EnvelopeGenerator.Application.Contracts { Task> SendAsync(EnvelopeReceiverDto envelopeReceiverDto, Constants.EmailTemplateType tempType); - Task> SendAsync(EnvelopeReceiverReadOnlyDto dto); + Task> SendAsync(EnvelopeReceiverReadOnlyDto dto, Dictionary? optionalPlaceholders = null); - Task> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto); + Task> SendAccessCodeAsync(EnvelopeReceiverDto envelopeReceiverDto, Dictionary? optionalPlaceholders = null); } } \ No newline at end of file diff --git a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs index 58a3c6b8..da2d0aa8 100644 --- a/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs +++ b/EnvelopeGenerator.Application/Services/EnvelopeMailService.cs @@ -12,6 +12,7 @@ using static EnvelopeGenerator.Common.Constants; using EnvelopeGenerator.Extensions; using EnvelopeGenerator.Application.DTOs.EnvelopeReceiverReadOnly; using EnvelopeGenerator.Application.Configurations; +using Newtonsoft.Json.Linq; namespace EnvelopeGenerator.Application.Services { @@ -66,7 +67,7 @@ namespace EnvelopeGenerator.Application.Services public async Task> SendAccessCodeAsync(EnvelopeReceiverDto dto) => await SendAsync(dto: dto, tempType: EmailTemplateType.DocumentAccessCodeReceived); - public async Task> SendAsync(EnvelopeReceiverDto dto, EmailTemplateType tempType) + public async Task> SendAsync(EnvelopeReceiverDto dto, EmailTemplateType tempType, Dictionary? optionalPlaceholders = null) { var tempSerResult = await _tempService.ReadByNameAsync(tempType); if (tempSerResult.IsFailed) @@ -104,12 +105,17 @@ namespace EnvelopeGenerator.Application.Services var placeholders = await CreatePlaceholders(accessCode: accessCode, envelopeReceiverDto: dto); + // Add optional place holders. + if (optionalPlaceholders is not null) + foreach (var oph in optionalPlaceholders) + placeholders[oph.Key] = oph.Value.ToString() ?? "NULL"; + //TODO: remove the requirement to add the models using reflections return await CreateWithTemplateAsync(createDto: mail,placeholders: placeholders, dto, dto.Envelope.User!, dto.Envelope); } - public async Task> SendAsync(EnvelopeReceiverReadOnlyDto dto) + public async Task> SendAsync(EnvelopeReceiverReadOnlyDto dto, Dictionary? optionalPlaceholders = null) { var tempSerResult = await _tempService.ReadByNameAsync(EmailTemplateType.DocumentShared); if (tempSerResult.IsFailed) @@ -140,6 +146,11 @@ namespace EnvelopeGenerator.Application.Services var placeholders = await CreatePlaceholders(readOnlyDto: dto); + // Add optional place holders. + if (optionalPlaceholders is not null) + foreach (var oph in optionalPlaceholders) + placeholders[oph.Key] = oph.Value.ToString() ?? "NULL"; + return await CreateWithTemplateAsync(createDto: mail, placeholders: placeholders, dto.Envelope); } }