Skip to content

Instantly share code, notes, and snippets.

@mattbrailsford
Created June 17, 2020 08:41
Show Gist options
  • Save mattbrailsford/79d70caeaf6bc5885a7c3956cc0e5b45 to your computer and use it in GitHub Desktop.
Save mattbrailsford/79d70caeaf6bc5885a7c3956cc0e5b45 to your computer and use it in GitHub Desktop.
using Vendr.Core.Models;
using Vendr.Core.Services;
using Vendr.Core.Templating;
namespace Vendr.Core.Pipelines.Email.Tasks
{
public class RenderEmailTemplateTask : PipelineTaskWithTypedArgsBase<EmailSendPipelineArgs, EmailContext>
{
private ITranslationService _translationService;
private IEmailTemplateEngine _emailTemplateEngine;
public RenderEmailTemplateTask(ITranslationService translationService,
IEmailTemplateEngine emailTemplateEngine)
{
_translationService = translationService;
_emailTemplateEngine = emailTemplateEngine;
}
public override PipelineResult<EmailContext> Execute(EmailSendPipelineArgs args)
{
var templateView = _translationService.TranslateValue(args.Model.EmailTemplate.TemplateView,
args.Model.LanguageIsoCode,
out string usedLanguageIsoCode)?.ToString();
var rendered = _emailTemplateEngine.RenderTemplateView(templateView, args.Model.Model, usedLanguageIsoCode);
args.Model.MailMessage.Body = rendered;
return Ok(args.Model);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment