コード例 #1
0
ファイル: BaseMvcPlugin.cs プロジェクト: kusog/mvc-plugins
 protected void RegisterActionFilter(string action, string controller, IActionFilter filter)
 {
     ActionFilters.Add(new DynamicActionFilter()
     {
         Action = action, Controller = controller, Filter = filter
     });
 }
コード例 #2
0
 /// <summary>
 /// Adds the action filter.
 /// </summary>
 /// <param name="filter">The filter.</param>
 protected virtual void AddActionFilter(IActionFilter filter)
 {
     if (!ActionFilters.Contains(filter))
     {
         ActionFilters.Add(filter);
     }
 }
コード例 #3
0
        private void AddFilter(Filter filter)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }

            var instance = filter.Instance;

            if (instance is IAuthenticationFilter authentication)
            {
                AuthenticationFilters.Add(new FilterInfo <IAuthenticationFilter>
                {
                    Filter = authentication,
                    Scope  = filter.Scope,
                    Order  = filter.Order
                });
            }

            if (instance is IAuthorizationFilter authorization)
            {
                AuthorizationFilters.Add(new FilterInfo <IAuthorizationFilter>
                {
                    Filter = authorization,
                    Scope  = filter.Scope,
                    Order  = filter.Order
                });
            }

            if (instance is IActionFilter action)
            {
                ActionFilters.Add(new FilterInfo <IActionFilter>
                {
                    Filter = action,
                    Scope  = filter.Scope,
                    Order  = filter.Order
                });
            }

            if (instance is IResultFilter result)
            {
                ResultFilters.Add(new FilterInfo <IResultFilter>
                {
                    Filter = result,
                    Scope  = filter.Scope,
                    Order  = filter.Order
                });
            }

            if (instance is IExceptionFilter exception)
            {
                ExceptionFilters.Add(new FilterInfo <IExceptionFilter>
                {
                    Filter = exception,
                    Scope  = filter.Scope,
                    Order  = filter.Order
                });
            }
        }