Пример #1
0
        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));
            }
        }
Пример #2
0
        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
            });
        }