public async Task SaveAsync(string tenant, IDictionary <string, string> data) { var appsettings = IFileStoreExtensions.Combine(null, _container, tenant, "appsettings.json"); JObject config; var fileInfo = await _shellsFileStore.GetFileInfoAsync(appsettings); if (fileInfo != null) { using (var stream = await _shellsFileStore.GetFileStreamAsync(appsettings)) { using (var streamReader = new StreamReader(stream)) { using (var reader = new JsonTextReader(streamReader)) { config = await JObject.LoadAsync(reader); } } } } else { config = new JObject(); } foreach (var key in data.Keys) { if (data[key] != null) { config[key] = data[key]; } else { config.Remove(key); } } using (var memoryStream = new MemoryStream()) { using (var streamWriter = new StreamWriter(memoryStream)) { using (var jsonWriter = new JsonTextWriter(streamWriter) { Formatting = Formatting.Indented }) { await config.WriteToAsync(jsonWriter); await jsonWriter.FlushAsync(); memoryStream.Position = 0; await _shellsFileStore.CreateFileFromStreamAsync(appsettings, memoryStream); } } } }
public async Task AddSourcesAsync(string tenant, IConfigurationBuilder builder) { var appSettings = IFileStoreExtensions.Combine(null, _container, tenant, "appsettings.json"); var fileInfo = await _shellsFileStore.GetFileInfoAsync(appSettings); if (fileInfo == null && _blobOptions.MigrateFromFiles) { if (await TryMigrateFromFileAsync(tenant, appSettings)) { fileInfo = await _shellsFileStore.GetFileInfoAsync(appSettings); } } if (fileInfo != null) { var stream = await _shellsFileStore.GetFileStreamAsync(appSettings); builder.AddJsonStream(stream); } }