public FilterResult VerificarFiltros(ActionBindInfo actionBindInfo) { var methodInfo = actionBindInfo.MethodInfo; var atributos = methodInfo.GetCustomAttributes(typeof(FiltroAttribute), false); foreach (FiltroAttribute filtro in atributos) { if (!filtro.PodeContinuar()) { return(new FilterResult(false)); } } return(new FilterResult(true)); }
internal FilterResult VerificarFiltros(ActionBindInfo actionBindInfo) { var methodInfo = actionBindInfo.MethodInfo; // O segundo atributo define se sera pego Attributes das classes mães var atributos = methodInfo.GetCustomAttributes(typeof(FiltroAttribute), false); // Verificando se o metodo podera ser executado seguindo os filtros foreach (FiltroAttribute filtro in atributos) { if (!filtro.PodeContinuar()) { return(new FilterResult(false)); } } return(new FilterResult(true)); }
public ActionFilterResult ExecuteFilters(ControllerBase controller, ActionBindInfo actionBindInfo) { var controllerType = controller.GetType(); var controllerActionFilters = controllerType.GetCustomAttributes(typeof(ActionFilterAttribute), false); var actionFilters = actionBindInfo.MethodInfo.GetCustomAttributes(typeof(ActionFilterAttribute), false); var union = controllerActionFilters.Union(actionFilters).Cast <ActionFilterAttribute>(); foreach (var item in union) { if (!item.CanContinue()) { return(ActionFilterResult.Redirect(item.RedirectTo)); } } return(ActionFilterResult.Continue()); }