Skip to content

Commit b0bd5df

Browse files
resolve comments
1 parent 6082e9f commit b0bd5df

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

src/Microsoft.FeatureManagement/FeatureManager.cs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -173,24 +173,28 @@ private async Task<bool> IsEnabledAsync<TContext>(string feature, TContext appCo
173173
Parameters = featureFilterConfiguration.Parameters
174174
};
175175

176-
if (filter is IFeatureFilter featureFilter)
176+
BindSettings(filter, context, filterIndex);
177+
178+
//
179+
// IContextualFeatureFilter
180+
if (useAppContext)
177181
{
178-
BindSettings(filter, context, filterIndex);
182+
ContextualFeatureFilterEvaluator contextualFilter = GetContextualFeatureFilter(featureFilterConfiguration.Name, typeof(TContext));
179183

180-
if (await featureFilter.EvaluateAsync(context).ConfigureAwait(false) == targetEvaluation) {
184+
if (contextualFilter != null &&
185+
await contextualFilter.EvaluateAsync(context, appContext).ConfigureAwait(false) == targetEvaluation)
186+
{
181187
enabled = targetEvaluation;
182188

183189
break;
184190
}
185191
}
186-
else
187-
{
188-
ContextualFeatureFilterEvaluator contextualFilter = GetContextualFeatureFilter(featureFilterConfiguration.Name, typeof(TContext));
189-
190-
BindSettings(filter, context, filterIndex);
191192

192-
if (contextualFilter != null &&
193-
await contextualFilter.EvaluateAsync(context, appContext).ConfigureAwait(false) == targetEvaluation)
193+
//
194+
// IFeatureFilter
195+
if (filter is IFeatureFilter featureFilter)
196+
{
197+
if (await featureFilter.EvaluateAsync(context).ConfigureAwait(false) == targetEvaluation)
194198
{
195199
enabled = targetEvaluation;
196200

@@ -358,6 +362,11 @@ private ContextualFeatureFilterEvaluator GetContextualFeatureFilter(string filte
358362

359363
IFeatureFilterMetadata metadata = GetFeatureFilterMetadata(filterName, appContextType);
360364

365+
if (metadata == null)
366+
{
367+
return null;
368+
}
369+
361370
return new ContextualFeatureFilterEvaluator(metadata, appContextType);
362371
}
363372
);

0 commit comments

Comments
 (0)