From 7f61d0170023294d0ebb834fa3c795b7888caa3d Mon Sep 17 00:00:00 2001 From: raman-m Date: Thu, 12 Oct 2023 15:15:43 +0300 Subject: [PATCH] AddOcelot overloaded version --- .../ConfigurationBuilderExtensions.cs | 17 +++++++++++------ .../ConfigurationMergeTests.cs | 5 ----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Ocelot/DependencyInjection/ConfigurationBuilderExtensions.cs b/src/Ocelot/DependencyInjection/ConfigurationBuilderExtensions.cs index e4a68da797..0843ac1add 100644 --- a/src/Ocelot/DependencyInjection/ConfigurationBuilderExtensions.cs +++ b/src/Ocelot/DependencyInjection/ConfigurationBuilderExtensions.cs @@ -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 @@ -76,14 +77,17 @@ 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); + /// /// Adds Ocelot configuration by ready configuration object and writes JSON to the primary configuration file.
/// Finally, adds JSON file as configuration provider. @@ -91,12 +95,13 @@ public static IConfigurationBuilder AddOcelot(this IConfigurationBuilder builder /// Configuration builder to extend. /// File configuration to add as JSON provider. /// An object. - 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); } diff --git a/test/Ocelot.AcceptanceTests/ConfigurationMergeTests.cs b/test/Ocelot.AcceptanceTests/ConfigurationMergeTests.cs index acd6949144..3d59748be5 100644 --- a/test/Ocelot.AcceptanceTests/ConfigurationMergeTests.cs +++ b/test/Ocelot.AcceptanceTests/ConfigurationMergeTests.cs @@ -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 {