public ConfigurationUpdaterBackgroundService(ApplicationConfiguration applicationConfiguration, StatusMonitorConfiguration statusMonitorConfiguration, StatusMonitorClientFactory statusMonitorClientFactory, INetworkUtil networkUtil, ILogger <ConfigurationUpdaterBackgroundService> logger) { _statusMonitorConfiguration = statusMonitorConfiguration; _statusMonitorClientFactory = statusMonitorClientFactory; _networkUtil = networkUtil; _configurationRefreshInterval = applicationConfiguration.ConfigurationRefreshInterval; _logger = logger; }
public static IStatusMonitor Create(MonitorConfiguration configuration, INetworkUtil networkUtil) { switch (configuration.Type) { case "Port": return(new PortStatusMonitor(networkUtil, configuration)); case "HTTP": return(new HttpStatusMonitor(configuration)); default: return(new EmptyStatusMonitor()); } }
public static async Task <StatusMonitorConfiguration> Create(StatusMonitorClient statusMonitorApi, INetworkUtil networkUtil) { try { var monitorConfigs = await statusMonitorApi.GetConfigurationsAsync(); return(new StatusMonitorConfiguration { Monitors = monitorConfigs .Where(mc => mc.Active) .Select(mc => StatusMonitorFactory.Create(mc, networkUtil)) .Where(monitor => monitor != null) .ToList() }); } catch { return(new StatusMonitorConfiguration()); } }
public PortStatusMonitor(INetworkUtil networkUtil, MonitorConfiguration configuration) : base(configuration) { _networkUtil = networkUtil; _slowTime = Configuration.SlowTime ?? Convert.ToInt32(Configuration.Timeout * .4); }