From 8f77c1e21c5f9972fa9b3533419c4afaa7e9ef2e Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 26 Aug 2020 15:22:24 +0800 Subject: [PATCH] Refactor GetAllWithProviderAsync method. --- .../Abp/FeatureManagement/FeatureManager.cs | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs index c708743b93..454ade5476 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs @@ -89,28 +89,27 @@ namespace Volo.Abp.FeatureManagement foreach (var feature in featureDefinitions) { - FeatureNameValueWithGrantedProvider value = null; - + var featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(feature.Name, null); foreach (var provider in providerList) { - var pk = provider.Name == providerName ? providerKey : null; - var providerValue = await provider.GetOrNullAsync( - feature, - pk - ); + string pk = null; + if (provider.Compatible(providerName)) + { + pk = providerKey; + } - if (providerValue != null) + var value = await provider.GetOrNullAsync(feature, pk); + if (value != null) { - value = new FeatureNameValueWithGrantedProvider(feature.Name, providerValue) - { - Provider = new FeatureValueProviderInfo(provider.Name, pk) - }; + featureNameValueWithGrantedProvider.Value = value; + featureNameValueWithGrantedProvider.Provider = new FeatureValueProviderInfo(provider.Name, pk); + break; } } - if (value != null) + if (featureNameValueWithGrantedProvider.Value != null) { - featureValues[feature.Name] = value; + featureValues[feature.Name] = featureNameValueWithGrantedProvider; } }