Browse Source

Refactor GetAllWithProviderAsync method.

pull/5176/head
maliming 6 years ago
parent
commit
8f77c1e21c
  1. 27
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs

27
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) foreach (var feature in featureDefinitions)
{ {
FeatureNameValueWithGrantedProvider value = null; var featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(feature.Name, null);
foreach (var provider in providerList) foreach (var provider in providerList)
{ {
var pk = provider.Name == providerName ? providerKey : null; string pk = null;
var providerValue = await provider.GetOrNullAsync( if (provider.Compatible(providerName))
feature, {
pk pk = providerKey;
); }
if (providerValue != null) var value = await provider.GetOrNullAsync(feature, pk);
if (value != null)
{ {
value = new FeatureNameValueWithGrantedProvider(feature.Name, providerValue) featureNameValueWithGrantedProvider.Value = value;
{ featureNameValueWithGrantedProvider.Provider = new FeatureValueProviderInfo(provider.Name, pk);
Provider = new FeatureValueProviderInfo(provider.Name, pk) break;
};
} }
} }
if (value != null) if (featureNameValueWithGrantedProvider.Value != null)
{ {
featureValues[feature.Name] = value; featureValues[feature.Name] = featureNameValueWithGrantedProvider;
} }
} }

Loading…
Cancel
Save