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)
{
foreach (var item in context.Items)
foreach (var item in context.Result)
{
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)
{

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.Diagnostics;
namespace Microsoft.AspNet.Mvc
{
@ -8,31 +7,13 @@ namespace Microsoft.AspNet.Mvc
public FilterProviderContext(ActionDescriptor actionDescriptor, List<FilterItem> items)
{
ActionDescriptor = actionDescriptor;
Items = items;
Result = items;
}
// Input
public ActionDescriptor ActionDescriptor { get; set; }
// Result
public List<FilterItem> Items { 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; }
}
public List<FilterItem> Result { get; set; }
}
}

View File

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