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); }
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); } }