コード例 #1
0
        public void Send(EmailMessageType type, EmailMessageOptions options)
        {
            MailMessage message = EmailMessageFactory.Construct(type, options);

            try
            {
                _client.Send(message);
            }
            catch (Exception e)
            {
                throw new EmailSenderException($"Failed to send email from {message.From} to {message.To.FirstOrDefault()} with options {options}", e);
            }
        }
コード例 #2
0
        public static MailMessage Construct(EmailMessageType type, EmailMessageOptions options)
        {
            string emailTemplate;

            switch (type)
            {
            case EmailMessageType.EmailConfirmation:
                emailTemplate = GetEmailTemplate("Register", "confirmationEmailTemplate");
                return(new EmailConfirmationEmailMessage(emailTemplate, options as ConfirmationEmailMessageOptions));

            case EmailMessageType.LoginConfirmation:
                emailTemplate = GetEmailTemplate("Login", "confirmationEmailTemplate");
                return(new LoginConfirmationEmailMessage(emailTemplate, options as ConfirmationEmailMessageOptions));

            case EmailMessageType.TemperatureChangeRequest:
                emailTemplate = GetEmailTemplate("Home", "temperatureRequestEmailMessage");
                return(new TemperatureRequestEmailMessage(emailTemplate, options as TemperatureRequestEmailMessageOptions));

            default:
                throw new InvalidOperationException($"No email message defined for type {type}");
            }
        }