private ServiceMonitorServiceConfiguration LoadConfiguration()
        {
            var repo          = new ServiceMonitorConfigRepository();
            var config        = repo.ReadServiceMonitorConfiguration();
            var configuration = Component.Mappers.ConfigurationMapper.Map(config);

            return(configuration);
        }
Пример #2
0
        public void UpdateServiceStatus()
        {
            var repo = new ServiceMonitorConfigRepository();

            repo.Update(new Component.DataAccess.SQLite.Entities.MontioringParameterConfig
            {
                Id           = 1,
                ServiceState = (int)ServiceStatus.Running
            });
        }
        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;
            }
        }