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)
|
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)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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.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; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue