private void Timer_Elapsed(object sender, ElapsedEventArgs e) { string methodName = MethodBase.GetCurrentMethod().Name; try { //log?.Verbose(className, methodName, "Sending Email"); Console.WriteLine("Timer Tick..."); foreach (var kv in serviceManager.Servies) { var key = kv.Key; ServiceControllerContainer value = kv.Value; if (value.InstallationStatus == ServiceInstallationStatus.Installed) { if (value.ServiceInfo.ServiceStatus != value.ServiceStatus) { Console.WriteLine("Service: {0}, Status: {1}, [{2}]", value.ServiceName, value.ServiceStatus, value.InstallationStatus); value.ServiceInfo.ServiceStatus = value.ServiceStatus; var repo = new ServiceMonitorConfigRepository(); repo.Update(new MontioringParameterConfig { Id = value.ServiceInfo.Id, ServiceState = (int)value.ServiceInfo.ServiceStatus, LastStateChange = DateTime.UtcNow }); GenerateEmail(value); } } } timer.Enabled = false; } catch (Exception ex) { log?.Error(className, methodName, ex.ToString()); Console.WriteLine(ex.ToString()); } finally { timer.Enabled = true; } }
private void GenerateEmail(ServiceControllerContainer value) { EmailManager.CreateServiceStatusEmail(value.ServiceInfo, log); }