protected override async Task <TSettings> Load()
        {
            var content = await HttpClientProvider.Client.GetStringAsync(_settingsUrl);

            var processingResult = await SettingsProcessor.ProcessForConfigurationAsync <TSettings>(content);

            var settings = processingResult.Item1;

            SetSettingsConfigurationRoot(processingResult.Item2);

            if (!_throwExceptionOnCheckError)
            {
                Task.Run(() => SettingsProcessor.CheckDependenciesAsync(settings, _slackNotificationOptions));
            }
            else
            {
                var errorMessages = await SettingsProcessor.CheckDependenciesAsync(settings,
                                                                                   _slackNotificationOptions);

                if (!string.IsNullOrEmpty(errorMessages))
                {
                    throw new Exception($"Services check failed:{Environment.NewLine}{errorMessages} ");
                }
            }

            _configure?.Invoke(settings);
            return(settings);
        }
        protected override async Task <TSettings> Load()
        {
            using (var reader = File.OpenText(_path))
            {
                var content = await reader.ReadToEndAsync();

                var processingResult = await SettingsProcessor.ProcessForConfigurationAsync <TSettings>(content);

                SetSettingsConfigurationRoot(processingResult.Item2);

                if (!_throwExceptionOnCheckError)
                {
                    Task.Run(() => SettingsProcessor.CheckDependenciesAsync(processingResult.Item1, _slackNotificationOptions));
                }
                else
                {
                    var errorMessages = await SettingsProcessor.CheckDependenciesAsync(processingResult.Item1,
                                                                                       _slackNotificationOptions);

                    if (!string.IsNullOrEmpty(errorMessages))
                    {
                        throw new Exception($"Services check failed:{Environment.NewLine}{errorMessages} ");
                    }
                }


                return(processingResult.Item1);
            }
        }
        public static T ReadGeneralSettings <T>(Uri url)
        {
            var httpClient = new HttpClient {
                BaseAddress = url
            };
            var settingsData = httpClient.GetStringAsync("").Result;

            return(SettingsProcessor.Process <T>(settingsData));
        }
        public static T ReadGeneralSettings <T>(string path)
        {
            var content = File.ReadAllText(path);

            return(SettingsProcessor.Process <T>(content));
        }