Inheritance: IModelBinder
Exemplo n.º 1
0
        private static string GetThemePath(ControllerContext controllerContext)
        {
            var type          = ModelBinder.GetModelType(controllerContext);
            var configuration = RunningObjectsSetup.Configuration.Security.For(type);

            if (configuration != null)
            {
                var container = configuration.FindPolicyContainer(controllerContext);
                if (container != null && Themes.ContainsKey(container))
                {
                    foreach (var pair in Themes[container])
                    {
                        if (pair.Key())
                        {
                            return(String.Format("{0}/", pair.Value));
                        }
                    }
                }
            }
            return(String.Empty);
        }
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }

            var controllerContext = filterContext.Controller.ControllerContext;
            var actionName        = (string)controllerContext.RouteData.Values["action"];
            var action            = RunningObjectsAction.Welcome.GetAction(actionName);
            var bindingContext    = MethodBinder.CreateBindingContext(controllerContext);

            if (action == RunningObjectsAction.Create || action == RunningObjectsAction.Execute)
            {
                var methodMapping = MethodBinder.GetMethodMapping(controllerContext, bindingContext, actionName);
                if (methodMapping != null)
                {
                    var validateInput = methodMapping.Method.GetCustomAttributes(true).OfType <ValidateRequestAttribute>().FirstOrDefault();
                    if (validateInput != null)
                    {
                        filterContext.Controller.ValidateRequest = validateInput.Validate;
                    }
                }
            }
            else
            {
                var modelType = ModelBinder.GetModelType(controllerContext);
                if (modelType != null)
                {
                    var validateInput = modelType.GetCustomAttributes(true).OfType <ValidateRequestAttribute>().FirstOrDefault();
                    if (validateInput != null && action == validateInput.Action)
                    {
                        filterContext.Controller.ValidateRequest = validateInput.Validate;
                    }
                }
            }
        }