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