internal static async Task FromAsync(this MailAddressCollection @this, string emailTemplates, ITransformerService transformer, params object[] transformData) { if (emailTemplates == null) { return; } foreach (var s in emailTemplates.SplitBySeparator()) { if (string.IsNullOrWhiteSpace(s)) { continue; } if (s.IsEmail()) { @this.Add(s); continue; } var e = await transformer.TransformAsync(s, transformData).ConfigureAwait(false); if (string.IsNullOrWhiteSpace(e)) { continue; } @this.Add(e); } }
protected async Task <MailMessage> GetMailMessageAsync(IEmailTemplate template, object[] transformData, params string[] attachments) { var mail = new MailMessage(); using (var t = _transformer.BeginSection()) { await Task.WhenAll( mail.To.FromAsync(template.ToEmails, _transformer, transformData), mail.CC.FromAsync(template.CcEmails, _transformer, transformData), mail.Bcc.FromAsync(template.BccEmails, _transformer, transformData) ).ConfigureAwait(false); mail.Subject = await _transformer.TransformAsync(template.Subject, transformData).ConfigureAwait(false); mail.Body = await _transformer.TransformAsync(template.Body, transformData).ConfigureAwait(false); mail.IsBodyHtml = template.IsBodyHtml; } return(mail); }