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; } }
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) ); }
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)); } }
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)); } }
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(); }
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)); } }