public async Task <IActionResult> GetEmailPreview([FromBody] PreviewRequestDto request) { var app = new App { Name = request.AppName }; try { if (request.TemplateType == PreviewType.Html) { var template = new EmailTemplate { BodyHtml = request.Template }; var formatted = await emailFormatter.FormatAsync(Notifications, template, app, EmailUser, true); var response = new PreviewDto { Result = formatted.BodyHtml ! }; return(Ok(response)); } else { var template = new EmailTemplate { BodyText = request.Template }; var formatted = await emailFormatter.FormatAsync(Notifications, template, app, EmailUser, true); var response = new PreviewDto { Result = formatted.BodyText ! }; return(Ok(response)); } } catch (EmailFormattingException ex) { var response = new PreviewDto { Errors = ex.Errors.ToArray() }; return(StatusCode(400, response)); } }
public static PreviewModel ToPreview(this PreviewDto dto) { if (dto is null) { throw new ArgumentNullException(nameof(dto)); } return(new PreviewModel { Id = dto.Id, Name = dto.Name, Subject = dto.Subject, IsHtml = dto.IsHtml, Type = dto.Type }); }