From 3e6abc8b306ebe2d24c369ed81abf8dbc6da594b Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 6 Jul 2021 16:08:22 +0200 Subject: [PATCH] Make linq --- .../Extensions/ElsaOptionBuilderExtensions.cs | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/core/Elsa.Core/Extensions/ElsaOptionBuilderExtensions.cs b/src/core/Elsa.Core/Extensions/ElsaOptionBuilderExtensions.cs index f41f2d58a..081375ee9 100644 --- a/src/core/Elsa.Core/Extensions/ElsaOptionBuilderExtensions.cs +++ b/src/core/Elsa.Core/Extensions/ElsaOptionBuilderExtensions.cs @@ -18,7 +18,7 @@ namespace Elsa if (enabledFeatures == null!) // Null when configuration binding finds an empty array. return builder; - + enabledFeatures = enabledFeatures.ToHashSet(); var startupTypesQuery = from assembly in assemblies @@ -43,31 +43,30 @@ namespace Elsa private static IEnumerable ParseFeatures(IConfiguration configuration) { var elsaFeaturesSection = "Elsa:Features"; - var enabledFeatures = new List(); var features = configuration.GetSection(elsaFeaturesSection).AsEnumerable(); - foreach (var feature in features) + return + from feature in features + let isEnabled = ParseFeatureFlag(configuration, feature.Key) + where isEnabled + select feature.Key.Replace($"{elsaFeaturesSection}:", string.Empty); + } + + private static bool ParseFeatureFlag(IConfiguration configuration, string feature) + { + if (configuration.GetSection($"{feature}:Enabled").Exists()) { - var explEnabled = false; - var implEnabled = false; - - if (configuration.GetSection($"{feature.Key}:Enabled").Exists()) - { - bool.TryParse(configuration.GetValue($"{feature.Key}:Enabled"), out explEnabled); - } - else if (!feature.Key.EndsWith(":Enabled")) - { - bool.TryParse(configuration.GetValue($"{feature.Key}"), out implEnabled); - } - - if (!explEnabled && !implEnabled) continue; - - var featureName = feature.Key.Replace($"{elsaFeaturesSection}:", string.Empty); - - enabledFeatures.Add(featureName); + bool.TryParse(configuration.GetValue($"{feature}:Enabled"), out var enabled); + return enabled; } - return enabledFeatures; + if (!feature.EndsWith(":Enabled")) + { + bool.TryParse(configuration.GetValue($"{feature}"), out var enabled); + return enabled; + } + + return false; } private static IEnumerable GetAssemblies(IEnumerable assemblyMarkerTypes) => assemblyMarkerTypes.Select(x => x.Assembly).Distinct();