示例#1
0
        public async Task <SendResponse> SendMail(SendMailDTO sendMailDTO)
        {
            var mailTemplate = _mailTemplateRepository.GetByIdWithItemsAsync(sendMailDTO.MailTemplateId.ToString()).Result;

            if (mailTemplate == null)
            {
                throw new NotFoundException("Template não encontrado!");
            }

            var template = mailTemplate.Template;

            foreach (var item in mailTemplate.MailTemplateItems)
            {
                if (sendMailDTO.MailTemplateItems.Any(i => i.Key == item.Key))
                {
                    template = template.Replace(item.Key, sendMailDTO.MailTemplateItems.Where(i => i.Key == item.Key).FirstOrDefault().Value);
                }
                else
                {
                    template = template.Replace(item.Key, item.Value);
                }
            }

            var response = await _email.SetFrom(mailTemplate.From)
                           .To(sendMailDTO.MailRecipient)
                           .Subject(mailTemplate.Subject ?? "Assunto")
                           .Body(template)
                           .SendAsync();

            return(response);
        }