public ServiceWrapper(
            ServiceWrapperConfig config,
            IDateTimeProvider dateTimeProvider,
            ILog logger
            )
        {
            Validate(config);

            _dateTimeProvider = dateTimeProvider;
            _logger           = logger;
            _backoff          = config.BackoffSeconds;
            _resetTime        = config.ResetAfterSeconds;
            Name  = config.Name;
            _util = new WindowsServiceUtil(config.Name);
        }
        private void Validate(ServiceWrapperConfig config)
        {
            if (!config.BackoffSeconds.Any())
            {
                LogFatal(BackoffConfigError);
                throw new ArgumentException(BackoffConfigError, nameof(config));
            }

            if (config.ResetAfterSeconds >= 1)
            {
                return;
            }

            {
                LogFatal(ResetSecondsError);
                throw new ArgumentException(ResetSecondsError, nameof(config));
            }
        }