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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }