Move filteritem out to it's own class

This commit is contained in:
Yishai Galatzer 2014-03-13 18:29:54 -07:00
parent 5849ba8544
commit 3461c44a5e
4 changed files with 31 additions and 26 deletions

View File

@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Mvc.Filters
{ {
if (context.ActionDescriptor.FilterDescriptors != null) if (context.ActionDescriptor.FilterDescriptors != null)
{ {
foreach (var item in context.Items) foreach (var item in context.Result)
{ {
ProvideFilter(context, item); ProvideFilter(context, item);
} }
@ -34,7 +34,7 @@ namespace Microsoft.AspNet.Mvc.Filters
} }
} }
public virtual void ProvideFilter(FilterProviderContext context, FilterProviderContext.FilterItem filterItem) public virtual void ProvideFilter(FilterProviderContext context, FilterItem filterItem)
{ {
if (filterItem.Filter != null) if (filterItem.Filter != null)
{ {

View File

@ -0,0 +1,24 @@
using System.Diagnostics;
namespace Microsoft.AspNet.Mvc
{
// Used to flow filters back from the FilterProviderContext
[DebuggerDisplay("FilterItem: {Filter}")]
public class FilterItem
{
public FilterItem([NotNull] FilterDescriptor descriptor)
{
Descriptor = descriptor;
}
public FilterItem([NotNull] FilterDescriptor descriptor, [NotNull] IFilter filter)
: this(descriptor)
{
Filter = filter;
}
public FilterDescriptor Descriptor { get; set; }
public IFilter Filter { get; set; }
}
}

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
namespace Microsoft.AspNet.Mvc namespace Microsoft.AspNet.Mvc
{ {
@ -8,31 +7,13 @@ namespace Microsoft.AspNet.Mvc
public FilterProviderContext(ActionDescriptor actionDescriptor, List<FilterItem> items) public FilterProviderContext(ActionDescriptor actionDescriptor, List<FilterItem> items)
{ {
ActionDescriptor = actionDescriptor; ActionDescriptor = actionDescriptor;
Items = items; Result = items;
} }
// Input // Input
public ActionDescriptor ActionDescriptor { get; set; } public ActionDescriptor ActionDescriptor { get; set; }
// Result // Result
public List<FilterItem> Items { get; set; } public List<FilterItem> Result { get; set; }
[DebuggerDisplay("FilterItem: {Filter}")]
public class FilterItem
{
public FilterItem([NotNull] FilterDescriptor descriptor)
{
Descriptor = descriptor;
}
public FilterItem([NotNull] FilterDescriptor descriptor, [NotNull] IFilter filter) : this(descriptor)
{
Filter = filter;
}
public FilterDescriptor Descriptor { get; set; }
public IFilter Filter { get; set; }
}
} }
} }

View File

@ -44,7 +44,7 @@ namespace Microsoft.AspNet.Mvc
new FilterProviderContext(_descriptor, new FilterProviderContext(_descriptor,
_descriptor. _descriptor.
FilterDescriptors. FilterDescriptors.
Select(fd => new FilterProviderContext.FilterItem(fd)).ToList()); Select(fd => new FilterItem(fd)).ToList());
_filterProvider.Invoke(filterProviderContext); _filterProvider.Invoke(filterProviderContext);
@ -160,12 +160,12 @@ namespace Microsoft.AspNet.Mvc
private void PreArrangeFiltersInPipeline(FilterProviderContext context) private void PreArrangeFiltersInPipeline(FilterProviderContext context)
{ {
if (context.Items == null || context.Items.Count == 0) if (context.Result == null || context.Result.Count == 0)
{ {
return; return;
} }
foreach (var filter in context.Items) foreach (var filter in context.Result)
{ {
PlaceFilter(filter.Filter); PlaceFilter(filter.Filter);
} }