- Methode `FillTemplate` für Platzhalterersetzung hinzugefügt. - `TemplatePlaceholderAttribute` eingeführt. - `EmailOutService` mit Vorlagenmethoden aktualisiert. - Unit-Tests für Vorlagenverarbeitung hinzugefügt.
60 lines
2.6 KiB
C#
60 lines
2.6 KiB
C#
using DigitalData.Core.API;
|
|
using DigitalData.EmailProfilerDispatcher.API.Resources;
|
|
using DigitalData.EmailProfilerDispatcher.Application.Contracts;
|
|
using DigitalData.EmailProfilerDispatcher.Application.DTOs.EmailOut;
|
|
using DigitalData.EmailProfilerDispatcher.Application.Services;
|
|
using DigitalData.EmailProfilerDispatcher.Domain.Attributes;
|
|
using DigitalData.EmailProfilerDispatcher.Domain.Entities;
|
|
using DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace DigitalData.EmailProfilerGateway.API.Controllers
|
|
{
|
|
public class MailController : CRUDControllerBase<IEmailOutService, IEmailOutRepository, EmailOutCreateDto, EmailOutDto, EmailOutDto, EmailOut, int>
|
|
{
|
|
public MailController(ILogger<MailController> logger, IEmailOutService service) : base(logger, service)
|
|
{
|
|
}
|
|
|
|
[HttpGet("fill-out")]
|
|
public IActionResult FillOut(string? template = null)
|
|
{
|
|
template ??= @"Guten Tag [NAME_RECEIVER],<br />
|
|
<br />
|
|
hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang <B><I>'[DOCUMENT_TITLE]'</I></B>.<br />
|
|
Wenn alle Vertragspartner unterzeichnet haben, erhalten Sie ebenfalls per email ein unterschriebenes Exemplar mit dem Signierungszertifikat!
|
|
<br />
|
|
Mit freundlichen Grüßen<br />
|
|
<br />
|
|
[NAME_PORTAL]";
|
|
|
|
var mailData = new MailData();
|
|
|
|
var expectedOutput = @"Guten Tag Tom,<br />
|
|
<br />
|
|
hiermit bestätigen wir Ihnen die erfolgreiche Signatur für den Vorgang <B><I>'Vertragsdokument'</I></B>.<br />
|
|
Wenn alle Vertragspartner unterzeichnet haben, erhalten Sie ebenfalls per email ein unterschriebenes Exemplar mit dem Signierungszertifikat!
|
|
<br />
|
|
Mit freundlichen Grüßen<br />
|
|
<br />
|
|
DokumentenPortal";
|
|
|
|
var result = EmailOutService<Resource>.FillTemplate(template, mailData);
|
|
|
|
return Ok(result);
|
|
}
|
|
|
|
public class MailData
|
|
{
|
|
[TemplatePlaceholder("[NAME_RECEIVER]")]
|
|
public string NameReceiver { get; set; } = "Tom";
|
|
|
|
[TemplatePlaceholder("[DOCUMENT_TITLE]")]
|
|
public string DocumentTitle { get; set; } = "Vertragsdokument";
|
|
|
|
[TemplatePlaceholder("[NAME_PORTAL]")]
|
|
public string NamePortal { get; set; } = "DokumentenPortal";
|
|
}
|
|
}
|
|
}
|