public ResourceMonitor( string resourceName, IHealthCheckStrategy verificationStrategy, IResourceMonitorConfiguration configuration, ILogger <ResourceMonitor> logger, bool isCritical = false) : this(resourceName, verificationStrategy, configuration, logger, isCritical, new TimerAdapterFactory()) { }
internal ResourceMonitor( string resourceName, IHealthCheckStrategy verificationStrategy, IResourceMonitorConfiguration configuration, ILogger <ResourceMonitor> logger, bool isCritical, ITimerFactory timerFactory) { if (resourceName == null) { throw new ArgumentNullException(nameof(resourceName)); } if (verificationStrategy == null) { throw new ArgumentNullException(nameof(verificationStrategy)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } if (timerFactory == null) { throw new ArgumentNullException(nameof(timerFactory)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } _verificationStrategy = verificationStrategy; _logger = logger; ResourceName = resourceName; Configuration = configuration; IsCritical = isCritical; _timer = timerFactory.Create(OnTimer); if (_timer == null) { throw new InvalidOperationException("Expected TimerFactory to return a Timer."); } }