#296 coming up with ideas for this config merging

This commit is contained in:
Tom Pallister 2018-04-15 09:20:52 +01:00
parent 7ca828836a
commit 3ae2b286ab
2 changed files with 24 additions and 3 deletions

View File

@ -5,6 +5,12 @@ using Microsoft.Extensions.Configuration.Memory;
namespace Ocelot.DependencyInjection namespace Ocelot.DependencyInjection
{ {
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using Configuration.File;
using Newtonsoft.Json;
public static class ConfigurationBuilderExtensions public static class ConfigurationBuilderExtensions
{ {
[Obsolete("Please set BaseUrl in ocelot.json GlobalConfiguration.BaseUrl")] [Obsolete("Please set BaseUrl in ocelot.json GlobalConfiguration.BaseUrl")]
@ -21,6 +27,21 @@ namespace Ocelot.DependencyInjection
public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder) public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder)
{ {
const string pattern = "(?i)ocelot(.*).json$";
var reg = new Regex(pattern);
var files = Directory.GetFiles(".")
.Where(path => reg.IsMatch(path))
.ToList();
foreach (var file in files)
{
var lines = File.ReadAllText(file);
var config = JsonConvert.DeserializeObject<FileConfiguration>(lines);
}
//var load all files with ocelot*.json //var load all files with ocelot*.json
//merge these files into one //merge these files into one
//save it as ocelot.json //save it as ocelot.json

View File

@ -70,13 +70,13 @@ namespace Ocelot.UnitTests.DependencyInjection
}; };
var globalJson = JsonConvert.SerializeObject(globalConfig); var globalJson = JsonConvert.SerializeObject(globalConfig);
//File.WriteAllText("ocelot.global.json", globalJson); File.WriteAllText("ocelot.global.json", globalJson);
var reRouteJson = JsonConvert.SerializeObject(reRoute); var reRouteJson = JsonConvert.SerializeObject(reRoute);
//File.WriteAllText("ocelot.reRoute.json", reRouteJson); File.WriteAllText("ocelot.reRoute.json", reRouteJson);
IConfigurationBuilder builder = new ConfigurationBuilder(); IConfigurationBuilder builder = new ConfigurationBuilder();
//builder.AddOcelot(); builder.AddOcelot();
} }