void IShellSettingsManager.SaveSettings(ShellSettings shellSettings) { Argument.ThrowIfNull(shellSettings, nameof(shellSettings)); Argument.ThrowIfNullOrWhiteSpace(shellSettings.Name, nameof(shellSettings.Name), "The Name property of the supplied ShellSettings object is null or empty; the settings cannot be saved."); if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("Saving ShellSettings for tenant '{0}'", shellSettings.Name); } var tenantPath = _appDataFolder.MapPath( _appDataFolder.Combine( _optionsAccessor.Value.Location, shellSettings.Name, string.Format(SettingsFileNameFormat, "txt"))); var configurationProvider = new YamlConfigurationProvider(tenantPath, false); foreach (var key in shellSettings.Keys) { if (!string.IsNullOrEmpty(shellSettings[key])) { configurationProvider.Set(key, shellSettings[key]); } } configurationProvider.Commit(); if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("Saved ShellSettings for tenant '{0}'", shellSettings.Name); } }
private YamlConfigurationProvider LoadProvider(string yaml) { var provider = new YamlConfigurationProvider(new YamlConfigurationSource { Optional = true }); provider.Load(TestStreamHelpers.StringToStream(yaml)); return provider; }
public void LoadMethodCanHandleEmptyValue() { var yaml = @"name:"; var yamlConfigSrc = new YamlConfigurationProvider(TestStreamHelpers.ArbitraryFilePath); yamlConfigSrc.Load(TestStreamHelpers.StringToStream(yaml)); Assert.Equal(string.Empty, yamlConfigSrc.Get("name")); }
public void NonObjectRootIsInvalid() { var yaml = @"test"; var yamlConfigPrd = new YamlConfigurationProvider("Foo"); var exception = Assert.Throws<FormatException>( () => yamlConfigPrd.Load(TestStreamHelpers.StringToStream(yaml))); Assert.NotNull(exception.Message); }
public void SupportAndIgnoreComments() { var yaml = @"# Comments # Comments name: test #foo address: street: Something street # Comments zipcode: 12345"; var yamlConfigPrd = new YamlConfigurationProvider("Foo"); yamlConfigPrd.Load(TestStreamHelpers.StringToStream(yaml)); Assert.Equal("test", yamlConfigPrd.Get("name")); Assert.Equal("Something street", yamlConfigPrd.Get("address:street")); Assert.Equal("12345", yamlConfigPrd.Get("address:zipcode")); }
public void LoadKeyValuePairsFromValidYaml() { var yaml = @" firstname: test test.last.name: last.name residential.address: street.name: Something street zipcode: 12345"; var yamlConfigPrd = new YamlConfigurationProvider(TestStreamHelpers.ArbitraryFilePath); yamlConfigPrd.Load(TestStreamHelpers.StringToStream(yaml.TrimStart())); Assert.Equal("test", yamlConfigPrd.Get("firstname")); Assert.Equal("last.name", yamlConfigPrd.Get("test.last.name")); Assert.Equal("Something street", yamlConfigPrd.Get("residential.address:STREET.name")); Assert.Equal("12345", yamlConfigPrd.Get("residential.address:zipcode")); }
public void Foo() { var yaml = @"--- name: Default dataproviders: entityframework-sql: connectionstring: Foo table-prefix: 12345 entityframework-inmemory: ..."; File.WriteAllText(_tempFolderName, yaml); var yamlConfigPrd = new YamlConfigurationProvider(_tempFolderName); var root = new ConfigurationBuilder().Add(yamlConfigPrd).Build(); var settings = new ShellSettings(root); //Assert.Equal(, settings.DataProviders.First()) }
public void SupportForMultiple() { var yaml = @"--- name: test #foo address: home: street: Some Home Address zipcode: 12345 work: street: Some Work Address zipcode: 54321 ..."; var yamlConfigPrd = new YamlConfigurationProvider(TestStreamHelpers.ArbitraryFilePath); yamlConfigPrd.Load(TestStreamHelpers.StringToStream(yaml)); Assert.Equal("Some Home Address", yamlConfigPrd.Get("address:home:street")); Assert.Equal("12345", yamlConfigPrd.Get("address:home:zipcode")); Assert.Equal("Some Work Address", yamlConfigPrd.Get("address:work:street")); Assert.Equal("54321", yamlConfigPrd.Get("address:work:zipcode")); }
void IShellSettingsManager.SaveSettings(ShellSettings shellSettings) { if (shellSettings == null) throw new ArgumentNullException(nameof(shellSettings)); if (string.IsNullOrWhiteSpace(shellSettings.Name)) throw new ArgumentException( "The Name property of the supplied ShellSettings object is null or empty; the settings cannot be saved.", nameof(shellSettings.Name)); _logger.LogInformation("Saving ShellSettings for tenant '{0}'", shellSettings.Name); var tenantPath = _appDataFolder.MapPath(_appDataFolder.Combine("Sites", shellSettings.Name)); var configurationProvider = new YamlConfigurationProvider( _appDataFolder.Combine(tenantPath, string.Format(SettingsFileNameFormat, "txt")), false); foreach (var key in shellSettings.RootConfiguration.GetChildren()) { configurationProvider.Set(key.Key, key.Value); } configurationProvider.Commit(); _logger.LogInformation("Saved ShellSettings for tenant '{0}'", shellSettings.Name); }