public MailGeneratorService( IMailQueue queue = null, IDataStore dataStore = null, Func <Template, IRenderer> rendererFactory = null, IDataDecorator[] decorators = null, IReceiverMapper receiverMapper = null, ISenderConfiguration senderConfiguration = null, IConfiguration configuration = null, IHttpClient httpClient = null, IMailSenderService mailSenderService = null, bool?async = null) { m_queue = queue ?? new InMemoryMailQueue(); IConfiguration configuration1 = configuration ?? new DefaultConfiguration(); m_rendererFactory = rendererFactory ?? (t => new HandlebarsRenderer(t)); m_decorators = decorators ?? new IDataDecorator[] { new RestResolvingDecorator( httpClient ?? new JsonHttpClient(), dataStore) }; m_receiverMapper = receiverMapper ?? new DefaultReceiverMapper(); m_senderConfiguration = senderConfiguration ?? new DefaultSenderConfiguration( configuration1); m_asyncActive = async.HasValue ? async.Value : StringToBoolUtil.Interpret(configuration1.GetValue(APP_KEY_ASYNCACTIVE)); if (!m_asyncActive && mailSenderService == null) { m_mailSenderService = new MailSenderService(m_queue); } else { m_mailSenderService = mailSenderService; } }
public MailSenderService(IMailQueue queue, IConfiguration configuration = null, ISmtpClient smtpClient = null) { if (queue == null) { throw new ArgumentException("Queue cannot be null.", "queue"); } m_configuration = configuration ?? new DefaultConfiguration(); m_queue = queue; m_smtpClient = smtpClient; s_sleepAfterException = StringToIntUtil.Interpret(m_configuration.GetValue(APP_KEY_WAIT_ERROR), s_sleepAfterException); s_sleepAfterOnNoWork = StringToIntUtil.Interpret(m_configuration.GetValue(APP_KEY_WAIT_NOWORK), s_sleepAfterOnNoWork); s_overrideRecipient = m_configuration.GetValue(APP_KEY_OVERRIDE_RECIPIENT); s_overrideSmtpHost = m_configuration.GetValue(APP_KEY_OVERRIDE_SMTP_HOST); s_overrideSmtpPort = StringToIntUtil.InterpretNullable(m_configuration.GetValue(APP_KEY_OVERRIDE_SMTP_PORT), null); s_overrideSmtpSSL = StringToBoolUtil.InterpretNullable(m_configuration.GetValue(APP_KEY_OVERRIDE_SMTP_SSL), null); s_overrideSmtpUser = m_configuration.GetValue(APP_KEY_OVERRIDE_SMTP_USER); s_overrideSmtpPassword = m_configuration.GetValue(APP_KEY_OVERRIDE_SMTP_PASSWORD); s_overrideSmtpDomain = m_configuration.GetValue(APP_KEY_OVERRIDE_SMTP_DOMAIN); }