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