private async Task <ActionDescriptor> InvokeActionSelector(RouteContext context, DefaultActionDiscoveryConventions actionDiscoveryConventions) { var actionDescriptorProvider = GetActionDescriptorProvider(actionDiscoveryConventions); var descriptorProvider = new NestedProviderManager <ActionDescriptorProviderContext>(new[] { actionDescriptorProvider }); var serviceContainer = new ServiceContainer(); serviceContainer.AddService(typeof(INestedProviderManager <ActionDescriptorProviderContext>), descriptorProvider); var actionCollectionDescriptorProvider = new DefaultActionDescriptorsCollectionProvider(serviceContainer); var decisionTreeProvider = new ActionSelectorDecisionTreeProvider(actionCollectionDescriptorProvider); var actionConstraintProvider = new NestedProviderManager <ActionConstraintProviderContext>( new INestedProvider <ActionConstraintProviderContext>[] { new DefaultActionConstraintProvider(serviceContainer), }); var defaultActionSelector = new DefaultActionSelector( actionCollectionDescriptorProvider, decisionTreeProvider, actionConstraintProvider, NullLoggerFactory.Instance); return(await defaultActionSelector.SelectAsync(context)); }
private void CreateActionDescriptors(ILoggerFactory loggerFactory, params TypeInfo[] controllerTypeInfo) { var actionDescriptorProvider = GetProvider(loggerFactory, controllerTypeInfo); var descriptorProvider = new NestedProviderManager <ActionDescriptorProviderContext>(new[] { actionDescriptorProvider }); var serviceContainer = new ServiceContainer(); serviceContainer.AddService(typeof(INestedProviderManager <ActionDescriptorProviderContext>), descriptorProvider); var actionCollectionDescriptorProvider = new DefaultActionDescriptorsCollectionProvider(serviceContainer, loggerFactory); var descriptors = actionCollectionDescriptorProvider.ActionDescriptors; }
private async Task <ActionDescriptor> InvokeActionSelector(RouteContext context, DefaultActionDiscoveryConventions actionDiscoveryConventions) { var actionDescriptorProvider = GetActionDescriptorProvider(actionDiscoveryConventions); var descriptorProvider = new NestedProviderManager <ActionDescriptorProviderContext>(new[] { actionDescriptorProvider }); var serviceContainer = new ServiceContainer(); serviceContainer.AddService(typeof(INestedProviderManager <ActionDescriptorProviderContext>), descriptorProvider); var actionCollectionDescriptorProvider = new DefaultActionDescriptorsCollectionProvider(serviceContainer); var bindingProvider = new Mock <IActionBindingContextProvider>(); var defaultActionSelector = new DefaultActionSelector(actionCollectionDescriptorProvider, bindingProvider.Object, NullLoggerFactory.Instance); return(await defaultActionSelector.SelectAsync(context)); }
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 actionConstraintProvider = new NestedProviderManager <ActionConstraintProviderContext>( new INestedProvider <ActionConstraintProviderContext>[] { new DefaultActionConstraintProvider(new ServiceContainer()), new BooleanConstraintProvider(), }); return(new DefaultActionSelector( actionProvider.Object, decisionTreeProvider, actionConstraintProvider, loggerFactory)); }
private async Task<ActionDescriptor> InvokeActionSelector(RouteContext context, DefaultActionDiscoveryConventions actionDiscoveryConventions) { var actionDescriptorProvider = GetActionDescriptorProvider(actionDiscoveryConventions); var descriptorProvider = new NestedProviderManager<ActionDescriptorProviderContext>(new[] { actionDescriptorProvider }); var serviceContainer = new ServiceContainer(); serviceContainer.AddService(typeof(INestedProviderManager<ActionDescriptorProviderContext>), descriptorProvider); var actionCollectionDescriptorProvider = new DefaultActionDescriptorsCollectionProvider(serviceContainer); var bindingProvider = new Mock<IActionBindingContextProvider>(); var defaultActionSelector = new DefaultActionSelector(actionCollectionDescriptorProvider, bindingProvider.Object, NullLoggerFactory.Instance); return await defaultActionSelector.SelectAsync(context); }