public CustomEmail( EmailContent emailContent, IViewRenderer renderer, IBaseUrls url) : base(renderer, url) { emailContent.Subject.ThrowIfNull("subject", nameof(emailContent.Subject)); Content = emailContent.Body; Subject = emailContent.Subject; From = emailContent.From; foreach (var recipient in emailContent.Recipients) { Recipients.Add(recipient); } foreach (var copy in emailContent.Cc) { Cc.Add(copy); } foreach (var hiddenCopy in emailContent.HiddenCc) { HiddenCc.Add(hiddenCopy); } }
public UserInvitationEmail( User user, User currentUser, IBaseUrls urls, IViewRenderer renderer) : base(renderer, urls, new CallToActionButton("Get some magic", new MainPageLink(urls.BaseUrl))) { user.ThrowIfNull(nameof(user)); currentUser.ThrowIfNull(nameof(currentUser)); FirstName = user.FirstName; LastName = user.LastName; Recipients.Add(user.Email); HiddenCc.Add(currentUser.Email); }
public void ThrowIfInvalid() { Recipients.ThrowIfNullOrEmpty(nameof(Recipients)); Subject.ThrowIfNullOrEmpty(nameof(Subject)); ViewPath.ThrowIfNullOrEmpty(nameof(ViewPath)); foreach (string recipient in Recipients) { if (!StringHelpers.IsValidEmail(recipient)) { throw new InvalidOperationException($"Email '{recipient}' is invalid"); } } if (Cc.Any()) { foreach (string cc in Cc) { if (!StringHelpers.IsValidEmail(cc)) { throw new InvalidOperationException($"Email '{cc}' is invalid"); } } Cc = Cc.Where(x => !Recipients.Contains(x)).ToArray(); } if (HiddenCc.Any()) { foreach (string cc in HiddenCc) { if (!StringHelpers.IsValidEmail(cc)) { throw new InvalidOperationException($"Email '{cc}' is invalid"); } } HiddenCc = HiddenCc .Where(x => !Cc.Contains(x)) .Where(x => !Recipients.Contains(x)).ToArray(); } }