public void AssertAllActionsAreConfigured(Assembly[] assemblies) { var assemblyScanner = new AssemblyScanner(); assemblyScanner.Assemblies(assemblies); assemblyScanner.With <ControllerTypeScanner>(); var controllerTypes = assemblyScanner.Scan(); var unconfiguredActions = ( from c in controllerTypes from a in c.GetActionMethods() let actionName = a.GetActionName() let controllerName = c.GetControllerName() where PolicyContainers.GetContainerFor(controllerName, actionName) == null select new { ControllerName = controllerName, ActionName = actionName } ).ToList(); if (unconfiguredActions.Any()) { var errorMessageBuilder = new StringBuilder(); unconfiguredActions.Each(a => errorMessageBuilder.AppendLine("- Security has not been configured for {0} action {1}.".FormatWith(a.ControllerName, a.ActionName)) ); throw new ConfigurationErrorsException(errorMessageBuilder.ToString()); } }
public IPolicyContainerConfiguration ForAllControllersInAssembly(params Assembly[] assemblies) { var assemblyScanner = new AssemblyScanner(); assemblyScanner.Assemblies(assemblies); assemblyScanner.With <ControllerTypeScanner>(); var controllerTypes = assemblyScanner.Scan(); return(CreateConventionPolicyContainerFor(controllerTypes)); }
public IPolicyContainerConfiguration ForActionsMatching(Func <ControllerActionInfo, bool> actionFilter, params Assembly[] assemblies) { var assemblyScanner = new AssemblyScanner(); var assembliesToScan = assemblies.ToList(); if (assembliesToScan.Any()) { assemblyScanner.Assemblies(assemblies); } else { assemblyScanner.TheCallingAssembly(); } assemblyScanner.With <ControllerTypeScanner>(); var controllerTypes = assemblyScanner.Scan(); return(CreateConventionPolicyContainerFor(controllerTypes, actionFilter)); }
private IPolicyContainerConfiguration ForAllControllersInheriting <TController>(Func <string, bool> actionFilter, IEnumerable <Assembly> assemblies) where TController : Controller { var controllerType = typeof(TController); var assembliesToScan = assemblies.ToList(); if (!assembliesToScan.Any()) { assembliesToScan.Add(controllerType.Assembly); } var assemblyScanner = new AssemblyScanner(); assemblyScanner.Assemblies(assembliesToScan); assemblyScanner.With(new ControllerTypeScanner(controllerType)); var controllerTypes = assemblyScanner.Scan(); Func <ControllerActionInfo, bool> filter = info => actionFilter.Invoke(info.ActionName); return(CreateConventionPolicyContainerFor(controllerTypes, filter)); }
public void AssertAllActionsAreConfigured(Assembly[] assemblies) { var assemblyScanner = new AssemblyScanner(); assemblyScanner.Assemblies(assemblies); assemblyScanner.With<ControllerTypeScanner>(); var controllerTypes = assemblyScanner.Scan(); var unconfiguredActions = ( from c in controllerTypes from a in c.GetActionMethods() let actionName = a.GetActionName() let controllerName = c.GetControllerName() where PolicyContainers.GetContainerFor(controllerName, actionName) == null select new { ControllerName = controllerName, ActionName = actionName } ).ToList(); if (unconfiguredActions.Any()) { var errorMessageBuilder = new StringBuilder(); unconfiguredActions.Each(a => errorMessageBuilder.AppendLine("- Security has not been configured for {0} action {1}.".FormatWith(a.ControllerName, a.ActionName)) ); throw new ConfigurationErrorsException(errorMessageBuilder.ToString()); } }