Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
            }
        }