Skip to content

Commit

Permalink
AddOcelot overloaded version
Browse files Browse the repository at this point in the history
  • Loading branch information
raman-m committed Oct 12, 2023
1 parent 18c3c20 commit 7f61d01
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
17 changes: 11 additions & 6 deletions src/Ocelot/DependencyInjection/ConfigurationBuilderExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Memory;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Ocelot.Configuration.File;

namespace Ocelot.DependencyInjection
Expand Down Expand Up @@ -76,27 +77,31 @@ public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder

var lines = File.ReadAllText(file.FullName);
dynamic config = JToken.Parse(lines);
var isGlobal = file.Name.Equals(globalConfigFile, StringComparison.OrdinalIgnoreCase);
var isGlobal = file.Name.Equals(GlobalConfigFile, StringComparison.OrdinalIgnoreCase);

MergeConfig(fileConfiguration, config, isGlobal);
}

return builder.AddOcelot(fileConfiguration);
return AddOcelot(builder, (JObject)fileConfiguration);
}

public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder, JObject fileConfiguration)
=> SerializeToFile(builder, fileConfiguration);

/// <summary>
/// Adds Ocelot configuration by ready configuration object and writes JSON to the primary configuration file.<br/>
/// Finally, adds JSON file as configuration provider.
/// </summary>
/// <param name="builder">Configuration builder to extend.</param>
/// <param name="fileConfiguration">File configuration to add as JSON provider.</param>
/// <returns>An <see cref="IConfigurationBuilder"/> object.</returns>
public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder, FileConfiguration fileConfiguration)
{
public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder, FileConfiguration fileConfiguration)
=> SerializeToFile(builder, fileConfiguration);

private static IConfigurationBuilder SerializeToFile(IConfigurationBuilder builder, object fileConfiguration)
{
var json = JsonConvert.SerializeObject(fileConfiguration);

File.WriteAllText(PrimaryConfigFile, json);

return builder.AddJsonFile(PrimaryConfigFile, false, false);
}

Expand Down
5 changes: 0 additions & 5 deletions test/Ocelot.AcceptanceTests/ConfigurationMergeTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@
using Ocelot.Configuration.File;
using Ocelot.DependencyInjection;
using Ocelot.Middleware;
using Shouldly;
using System.IO;
using System.Linq;
using TestStack.BDDfy;
using Xunit;

namespace Ocelot.AcceptanceTests
{
Expand Down

0 comments on commit 7f61d01

Please sign in to comment.