示例#1
0
        public void CopyConfigToAppSettings(IWebConfigWriter webConfigWriter)
        {
            if (webConfigWriter == null)
            {
                throw new ArgumentNullException(nameof(webConfigWriter), "The web config writer is required");
            }

            foreach (KeyValuePair <string, string> pair in _webConfigReader.GetAppSettings())
            {
                var updatedValue = _config.GetValue <string>(pair.Key);
                if (updatedValue != null)
                {
                    webConfigWriter.SetAppSetting(pair.Key, updatedValue);
                }
            }
        }
        public void CopyExternalAppSettings(IWebConfigWriter webConfigWriter)
        {
            if (webConfigWriter == null)
            {
                throw new ArgumentNullException(nameof(webConfigWriter), "WebConfig writer is required");
            }

            foreach (var appSetting in _webConfigReader.GetAppSettings())
            {
                var value = _config[$"appSettings:{appSetting.Key}"];

                if (!string.IsNullOrEmpty(value))
                {
                    webConfigWriter.SetAppSetting(appSetting.Key, value);
                }
            }
        }
示例#3
0
        public AppSettingsInitializerTests()
        {
            _webConfigWriter = Substitute.For <IWebConfigWriter>();
            _webConfigReader = Substitute.For <IWebConfigReader>();

            var existingAppSettings = new List <KeyValuePair <string, string> >
            {
                new KeyValuePair <string, string>("app_setting_1", "old_value1"),
                new KeyValuePair <string, string>("app_setting_2", "old_value2")
            };

            _webConfigReader.GetAppSettings().Returns(existingAppSettings.AsReadOnly());

            _config = new ConfigurationBuilder().AddInMemoryCollection(new Dictionary <string, string>
            {
                { "app_setting_2", "new_value_2" },
                { "app_setting_3", "new_value_3" }
            }).Build();
        }