Move filteritem out to it's own class
This commit is contained in:
parent
5849ba8544
commit
3461c44a5e
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue