private static Task CreateHostBuildAsync(string[] args) { var configName = "appsettings.json"; var basePath = Directory.GetCurrentDirectory(); if (!File.Exists(Path.Combine(basePath, configName))) { throw new ArgumentNullException($"{Path.Combine(basePath, configName)} does not exists "); } var configuration = new ConfigurationBuilder() .SetBasePath(basePath) .AddJsonFile(configName, optional: false, reloadOnChange: true) .Build(); var serviceProvider = new ServiceCollection() .SetupServiceCollection(configuration.GetSection("FileConfig")) .AddConfigurationMonitor(configuration, InvokeConfigChanged) .BuildServiceProvider(); var fileConfig = serviceProvider.GetService <IOptions <FileConfig> >().Value; _configurationMonitor = serviceProvider.GetService <IConfigurationMonitor>(); _configurationMonitor.ConfigSectionHash = string.Join(',', fileConfig.Files).ComputeHash(); return(Process(fileConfig)); }
public VersionController(IConfiguration config, IOptionsSnapshot <VersionConfig> versionConfigRefresh, IOptions <VersionConfig> versionConfig, IConfigurationMonitor monitor) : base(monitor) { _config = config; _versionConfig = versionConfig.Value; _versionConfigRefresh = versionConfigRefresh.Value; _monitor = monitor; }
public IndexModel( IConfiguration config, IConfigurationMonitor monitor, FileService fileService) { _config = config; _monitor = monitor; _fileService = fileService; }
private void InvokeChanged(IConfigurationMonitor state) { if (MonitoringEnabled) { byte[] appsettingsHash = Utilities.ComputeHash("appSettings.json"); byte[] appsettingsEnvHash = Utilities.ComputeHash($"appSettings.{_env.EnvironmentName}.json"); if (!_appsettingsHash.SequenceEqual(appsettingsHash) || !_appsettingsEnvHash.SequenceEqual(appsettingsEnvHash)) { string message = $"State updated at {DateTime.Now}"; _appsettingsHash = appsettingsHash; _appsettingsEnvHash = appsettingsEnvHash; } } }
private void InvokeChanged(IConfigurationMonitor state) { if (MonitoringEnabled) { byte[] appsettingsHash = ComputeHash("appSettings.json"); byte[] appsettingsEnvHash = ComputeHash($"appSettings.{_env.EnvironmentName}.json"); if (!_appsettingsHash.SequenceEqual(appsettingsHash) || !_appsettingsEnvHash.SequenceEqual(appsettingsEnvHash)) { string message = $"State updated at {DateTime.Now}"; _appsettingsHash = appsettingsHash; _appsettingsEnvHash = appsettingsEnvHash; WriteConsole($"Configuration changed (ConfigurationMonitor Class) {message}, state:{state.CurrentState}"); } } }
public ApiControllerBase(IConfigurationMonitor monitor) { _monitor = monitor; }