Beispiel #1
0
        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;
 }
Beispiel #4
0
        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;
                }
            }
        }
Beispiel #5
0
        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;
 }