Exemple #1
0
        private bool MissingSharedResources()
        {
            try
            {
                _logger.Info("Checking resources");
                var oen = new OenContext();
                var coBSettings = new CancelOnBulkingSettings(oen);
                var f21Settings = new Four21Settings(oen);
                var jobRepository = new JobRepository(new OenContext(), _logger, true);

                if (!new EmailNotification(_logger, jobRepository, coBSettings.NotifyEmails.Union(f21Settings.NotifyEmails), coBSettings.SmtpServer).EmailNotificationResourcesAvailable())
                {
                    return true;
                }
                return false;
            }
            catch (Exception ex)
            {
                _logger.Error(ex.UnwrapForLog(true));
                return true;
            }
        }
Exemple #2
0
        private Four21 GetNewFour21(OenContext oenContext, Four21Settings settings)
        {
            var logger = new Logger("421");
#if DEBUG
            var mta = new PmtaMonitoring.Testing.Mocking.MtaAgentMock(0, logger);
#else
            var mta = new MtaAgent(logger, settings.MtaTestMode);
#endif

            return new Four21(logger,
                              mta,
                              new EmailNotification(logger, new JobRepository(oenContext, logger, settings.DatabaseTestMode),
                              settings.NotifyEmails,
                              settings.SmtpServer),
                              () => new OenContext(),
                              u => new EventRepository((OenContext) u),
                              u => new PmtaRepository((OenContext) u),
                              u => new DeliveryGroupRepository((OenContext) u),
                              u => new JobRepository((OenContext) u, logger, settings.DatabaseTestMode)
                              );
        }
Exemple #3
0
        private void RunFour21Reset(OenContext oenContext, Four21Settings settings, DateTime resetTime)
        {
            var f21 = GetNewFour21(oenContext, settings);

            try
            {
                _logger.Info("Starting 421 reset");
                f21.ResumeQueues(resetTime);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.UnwrapForLog(true));
            }
        }
Exemple #4
0
        private void RunFour21(OenContext oenContext, Four21Settings settings, DateTime nextReset)
        {
            var f21 = GetNewFour21(oenContext, settings);

            try
            {
                _logger.Info("Starting 421 process");
                f21.ProcessBackOffedQueues(nextReset);
            }
            catch (Exception ex)
            {
                _logger.Error(ex.UnwrapForLog(true));
            }
        }
Exemple #5
0
        private void Four21Tick(object sender, ElapsedEventArgs e)
        {
            _four21Timer.Stop();
            _logger.Info("421 Timer Ticked");
            try
            {
                var oenContext = new OenContext();
                var settings = new Four21Settings(oenContext);
                var nextReset = GetNextResetTime(oenContext, Event.Monitors.Four21, settings.ResetTime);

                if (DateTime.Now >= nextReset)
                {
                    RunFour21Reset(oenContext, settings, nextReset);
                }
                else if (settings.Enabled && DateTime.Now >= _four21LastRun.AddMinutes(settings.RunIntervalMinutes))
                {
                    RunFour21(oenContext, settings, nextReset);
                    _four21LastRun = DateTime.Now;
                }
                else
                {
                    if (!settings.Enabled)
                    {
                        _logger.Info("421 Disabled");
                    }
                    _logger.TraceFormat("Next reset {0}", nextReset);
                    _logger.TraceFormat("LastRun reset {0}", _four21LastRun);
                    _logger.TraceFormat("Next run {0}", _four21LastRun.AddMinutes(settings.RunIntervalMinutes));
                }
            }
            catch (Exception ex)
            {
                _logger.Fatal(ex.UnwrapForLog(true));
            }
            UpdateTickInterval();
            _four21Timer.Interval = _timerInterval;
            _four21Timer.Start();
        }
Exemple #6
0
        static void F21Reset()
        {
            Database.SetInitializer<OenContext>(null);
            var oenContext = new OenContext();
            var logger = new Logger();
            var jobRepository = new JobRepository(oenContext, logger, true);
            var settings = new Four21Settings(oenContext);
#if DEBUG
            var emailNotify = new EmailNotification(logger, jobRepository, new string[] { "*****@*****.**" }, settings.SmtpServer);
#else
            var emailNotify = new EmailNotification(logger, jobRepository, settings.NotifyEmails, settings.SmtpServer);
#endif
            var f21 = new Four21(logger,
                                 new MtaAgentMock(0, logger),
                                 emailNotify,
                                 () => new OenContext(),
                                 u => new EventRepository((OenContext) u),
                                 u => new PmtaRepository((OenContext) u),
                                 u => new DeliveryGroupRepository((OenContext) u),
                                 u => new JobRepository((OenContext) u, logger, true)
                                 );

            try
            {
                f21.ResumeQueues(DateTime.Now);
            }
            catch (Exception ex)
            {
                logger.Error(ex.UnwrapForLog(true));
            }
        }