private async Task <ActionDescriptor> InvokeActionSelector(RouteContext context) { var actionDescriptorProvider = GetActionDescriptorProvider(); // service container does not work quite like our built in Depenency Injection container. var serviceContainer = new ServiceContainer(); var list = new List <IActionDescriptorProvider>() { actionDescriptorProvider, }; serviceContainer.AddService(typeof(IEnumerable <IActionDescriptorProvider>), list); var actionCollectionDescriptorProvider = new DefaultActionDescriptorsCollectionProvider(serviceContainer); var decisionTreeProvider = new ActionSelectorDecisionTreeProvider(actionCollectionDescriptorProvider); var actionConstraintProviders = new IActionConstraintProvider[] { new DefaultActionConstraintProvider(), }; var defaultActionSelector = new DefaultActionSelector( actionCollectionDescriptorProvider, decisionTreeProvider, actionConstraintProviders, NullLoggerFactory.Instance); return(await defaultActionSelector.SelectAsync(context)); }
private static ActionSelector CreateSelector(IReadOnlyList <ActionDescriptor> actions, ILoggerFactory loggerFactory = null) { loggerFactory = loggerFactory ?? NullLoggerFactory.Instance; var actionProvider = new Mock <IActionDescriptorCollectionProvider>(MockBehavior.Strict); actionProvider .Setup(p => p.ActionDescriptors) .Returns(new ActionDescriptorCollection(actions, 0)); var actionConstraintProviders = new IActionConstraintProvider[] { new DefaultActionConstraintProvider(), new BooleanConstraintProvider(), }; return(new ActionSelector( actionProvider.Object, GetActionConstraintCache(actionConstraintProviders), loggerFactory)); }
public static FinerGrainedActionSelector CreateFinerGrainedActionSelector( IReadOnlyList <ActionDescriptor> actions, ILoggerFactory loggerFactory = null) { loggerFactory = loggerFactory ?? NullLoggerFactory.Instance; var actionProvider = CreateMockIActionDescriptorCollectionProvider(actions); var actionConstraintProviders = new IActionConstraintProvider[] { new DefaultActionConstraintProvider(), new BooleanConstraintProvider(), }; return(new FinerGrainedActionSelector( actionProvider.Object, GetActionConstraintCache(actionConstraintProviders), ModelingBindingParameterBinderTestBase.CreateParameterBinder(), TestModelBinderFactory.CreateDefault(), TestModelMetadataProvider.CreateDefaultProvider(), ModelingBindingParameterBinderTestBase.MvcOptionsWrapper, loggerFactory)); }
private static DefaultActionSelector CreateSelector(IReadOnlyList<ActionDescriptor> actions, ILoggerFactory loggerFactory = null) { loggerFactory = loggerFactory ?? NullLoggerFactory.Instance; var actionProvider = new Mock<IActionDescriptorsCollectionProvider>(MockBehavior.Strict); actionProvider .Setup(p => p.ActionDescriptors).Returns(new ActionDescriptorsCollection(actions, 0)); var decisionTreeProvider = new ActionSelectorDecisionTreeProvider(actionProvider.Object); var actionConstraintProviders = new IActionConstraintProvider[] { new DefaultActionConstraintProvider(), new BooleanConstraintProvider(), }; return new DefaultActionSelector( actionProvider.Object, decisionTreeProvider, actionConstraintProviders, loggerFactory); }
private async Task<ActionDescriptor> InvokeActionSelector(RouteContext context) { var actionDescriptorProvider = GetActionDescriptorProvider(); // service container does not work quite like our built in Depenency Injection container. var serviceContainer = new ServiceContainer(); var list = new List<IActionDescriptorProvider>() { actionDescriptorProvider, }; serviceContainer.AddService(typeof(IEnumerable<IActionDescriptorProvider>), list); var actionCollectionDescriptorProvider = new DefaultActionDescriptorsCollectionProvider(serviceContainer, new NullLoggerFactory()); var decisionTreeProvider = new ActionSelectorDecisionTreeProvider(actionCollectionDescriptorProvider); var actionConstraintProviders = new IActionConstraintProvider[] { new DefaultActionConstraintProvider(), }; var defaultActionSelector = new DefaultActionSelector( actionCollectionDescriptorProvider, decisionTreeProvider, actionConstraintProviders, NullLoggerFactory.Instance); return await defaultActionSelector.SelectAsync(context); }
private static ActionConstraintCache GetActionConstraintCache(IActionConstraintProvider[] actionConstraintProviders = null) { var services = new ServiceCollection().BuildServiceProvider(); var descriptorProvider = new ActionDescriptorCollectionProvider(services); return new ActionConstraintCache(descriptorProvider, actionConstraintProviders.AsEnumerable() ?? new List<IActionConstraintProvider>()); }