public static FilterRegistry RegisterOnGlobal <TFilter>(this FilterRegistry instance) where TFilter : FilterAttribute { Guard.ArgumentNotNull(instance, "instance"); return(RegisterOnGlobal <TFilter>(instance, (TFilter filter) => { })); }
public static FilterRegistry RegisterOnAction <TController, TFilter>(this FilterRegistry instance, Expression <Action <TController> > action) where TController : Controller where TFilter : FilterAttribute { Guard.ArgumentNotNull(instance, "instance"); return(RegisterOnAction <TController, TFilter>(instance, action, filter => { })); }
public static FilterRegistry RegisterOnAction <TController, TFilter>(this FilterRegistry instance, Expression <Action <TController> > action, Action <TFilter> configureFilter) where TController : Controller where TFilter : FilterAttribute { Guard.ArgumentNotNull(instance, "instance"); Guard.ArgumentNotNull(action, "action"); Guard.ArgumentNotNull(configureFilter, "configureFilter"); return(instance.Register <TController, FilterAttribute>(action, CreateAndConfigureFilter(instance, configureFilter))); }
private static Func <FilterAttribute> CreateAndConfigureFilter <TFilter>(FilterRegistry registry, Action <TFilter> configureFilter) where TFilter : FilterAttribute { return(new Func <FilterAttribute>(() => { TFilter filter = registry.Container.ResolveOne <TFilter>(); configureFilter(filter); return filter; })); }
public static FilterRegistry RegisterOnGlobal <TFilter>(this FilterRegistry instance, Action <TFilter> configureFilter) where TFilter : FilterAttribute { Guard.ArgumentNotNull(instance, "instance"); Guard.ArgumentNotNull(configureFilter, "configureFilter"); foreach (Type itemType in instance.Container.ResolveAll <Controller>().Select(c => c.GetType()).Select(controllerType => genericControllerItemType.MakeGenericType(controllerType))) { instance.Items.Add(Activator.CreateInstance(itemType, new object[] { CreateAndConfigureFilter(instance, configureFilter) }) as FilterRegistryItem); } return(instance); }
public static FilterRegistry RegisterOnController <TController, TFilter>(this FilterRegistry instance) where TController : Controller where TFilter : FilterAttribute { return(RegisterOnController <TController, TFilter>(instance, (TFilter filter) => { })); }
private void RegisterInternal(FilterRegistry registry) { }
protected abstract void Register(FilterRegistry registry);