Example #1
0
 public ResourceMonitor(
     string resourceName,
     IHealthCheckStrategy verificationStrategy,
     IResourceMonitorConfiguration configuration,
     ILogger <ResourceMonitor> logger,
     bool isCritical = false)
     : this(resourceName,
            verificationStrategy,
            configuration,
            logger,
            isCritical,
            new TimerAdapterFactory())
 {
 }
Example #2
0
        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.");
            }
        }