示例#1
0
        Email buildEmail(IEmailAudience audience, Action <EmailBuilder> email)
        {
            var builder = new EmailBuilder(_emailClient, _templateService);

            builder.To(audience.To);

            if (audience.From != null)
            {
                builder.From(audience.From.EmailAddress, audience.From.DisplayName);
            }

            if (audience.Cc != null)
            {
                builder.Cc(audience.Cc);
            }

            if (audience.Bcc != null)
            {
                builder.Bcc(audience.Bcc);
            }

            email(builder);

            var builtEmail = builder.Build();

            ensureToAndFromHaveNotBeenModifed(builtEmail, audience);
            //ensureCcAndBccHaveNotBeenModifed(builtEmail, audience);

            return(builtEmail);
        }
示例#2
0
 void ensureToAndFromHaveNotBeenModifed(Email builtEmail, IEmailAudience audience)
 {
     if (!Equals(builtEmail.To, audience.To) || !Equals(builtEmail.From, audience.From))
     {
         throw new EmailBuilderException(
                   $"You can not modify the '{nameof(Email.To)}' or '{nameof(Email.From)}' parameters when targeting a specific audience. " +
                   $"Use the '{nameof(Create)}' method if you need control over these.");
     }
 }
示例#3
0
 public Email CreateFor(IEmailAudience audience, Action <EmailBuilder> email)
 {
     return(buildEmail(audience, email));
 }