|
#region License
// Copyright (c) Dmitry Antonenko (http://hystrix.com.ua)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// The latest version of this file can be found at http://fluentfilters.codeplex.com/
#endregion
namespace FluentFilters
{
using System.Web.Mvc;
public class FluentFiltersActionInvoker : ControllerActionInvoker
{
#region Fields
private readonly IFilterRegistry _registry;
#endregion
#region Constructor
public FluentFiltersActionInvoker(IFilterRegistry registry)
{
_registry = registry;
}
#endregion
#region Overridden methods
/// <summary>
/// Retrieves information about the action filters
/// </summary>
/// <param name="controllerContext">The controller context</param>
/// <param name="actionDescriptor">The action descriptor</param>
/// <returns>Information about the action filters</returns>
protected override FilterInfo GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor)
{
FilterInfo filters = base.GetFilters(controllerContext, actionDescriptor);
FilterInfo registeredFilters = _registry.GetFilters(new FilterRegistryContext(controllerContext, actionDescriptor));
foreach (IActionFilter actionFilter in registeredFilters.ActionFilters)
filters.ActionFilters.Add(actionFilter);
foreach (IAuthorizationFilter authorizationFilter in registeredFilters.AuthorizationFilters)
filters.AuthorizationFilters.Add(authorizationFilter);
foreach (IExceptionFilter exceptionFilter in registeredFilters.ExceptionFilters)
filters.ExceptionFilters.Add(exceptionFilter);
foreach (IResultFilter resultFilter in registeredFilters.ResultFilters)
filters.ResultFilters.Add(resultFilter);
return filters;
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.