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)
{
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;
}
}

Loading…
Cancel
Save