public static IConfigurationBuilder AddCubesConfigurationProvider(this IConfigurationBuilder configuration, ICubesEnvironment cubes) { const string section = CubesConstants.Configuration_Section; var cubesConfig = new Dictionary <string, string> { { $"{section}:Version", cubes.GetEnvironmentInformation().FullVersion }, { $"{section}:RootFolder", cubes.GetRootFolder() }, { $"{section}:AdminPath", cubes.GetAdminPath() }, { $"{section}:ContentFolder", cubes.GetFolder(CubesFolderKind.Content) }, { $"{section}:LibrariesFolder", cubes.GetFolder(CubesFolderKind.Libraries) }, { $"{section}:LogsFolder", cubes.GetFolder(CubesFolderKind.Logs) }, { $"{section}:ConfigFolder", cubes.GetConfigurationFolder() }, { $"{section}:StorageFolder", cubes.GetStorageFolder() }, { $"{section}:TempFolder", cubes.GetFolder(CubesFolderKind.Temp) }, { $"{section}:WebRootFolder", cubes.GetFolder(CubesFolderKind.WebRoot) }, { $"{section}:BinariesFolder", cubes.GetBinariesFolder() }, }; var swaggerFiles = cubes .GetSwaggerXmlFiles() .Select((f, i) => new KeyValuePair <string, string>($"{section}:SwaggerXMLFiles:{i}", f)) .ToList(); foreach (var item in swaggerFiles) { cubesConfig.Add(item.Key, item.Value); } configuration.AddInMemoryCollection(cubesConfig); return(configuration); }