/// <summary> /// Creates an action selector, descriptors and route builder based on /// the specified controller /// </summary> /// <param name="controllerType"></param> /// <param name="actionName">Action name of the action descriptors to return</param> /// <param name="routeBuilder"></param> /// <param name="actionSelector"></param> /// <param name="actionDescriptors"></param> public static void SetupActionSelector(System.Type controllerType, string actionName, out IRouteBuilder routeBuilder, out ODataActionSelector actionSelector, out IReadOnlyList <ControllerActionDescriptor> actionDescriptors) { routeBuilder = RoutingConfigurationFactory.Create(); actionDescriptors = ControllerDescriptorFactory.Create(routeBuilder, controllerType.Name, controllerType) as IReadOnlyList <ControllerActionDescriptor>; actionDescriptors = actionDescriptors.Where(a => a.ActionName == actionName).ToList(); var serviceProvider = routeBuilder.ServiceProvider; #if NETCOREAPP2_0 var actionsProvider = serviceProvider.GetRequiredService <IActionDescriptorCollectionProvider>(); var actionConstraintsProvider = serviceProvider.GetRequiredService <ActionConstraintCache>(); var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>(); var modelBinderFactory = serviceProvider.GetRequiredService <IModelBinderFactory>(); var modelMetadataProvider = serviceProvider.GetRequiredService <IModelMetadataProvider>(); actionSelector = new ODataActionSelector( actionsProvider, actionConstraintsProvider, loggerFactory, modelBinderFactory, modelMetadataProvider); }
private void InitializeConfiguration(Action <IContainerBuilder> action) { var configuration = RoutingConfigurationFactory.Create(); string routeName = HttpRouteCollectionExtensions.RouteName; _rootContainer = configuration.CreateODataRootContainer(routeName, action); }
private void InitializeConfiguration(Action <IContainerBuilder> action) { var configuration = RoutingConfigurationFactory.Create(); string routeName = HttpRouteCollectionExtensions.RouteName; IPerRouteContainer perRouteContainer = configuration.ServiceProvider.GetRequiredService <IPerRouteContainer>(); Action <IContainerBuilder> builderAction = ODataRouteBuilderExtensions.ConfigureDefaultServices(configuration, action); _rootContainer = perRouteContainer.CreateODataRootContainer(routeName, builderAction); }
/// <summary> /// Initializes a new instance of the routing configuration class. /// </summary> /// <returns>A new instance of the routing configuration class.</returns> public static HttpRequestMessage CreateFromModel(IEdmModel model, string uri = "http://localhost", string routeName = "Route", ODataPath path = null) { var configuration = RoutingConfigurationFactory.Create(); configuration.MapODataServiceRoute(routeName, null, model); var request = RequestFactory.Create(HttpMethod.Get, uri, configuration, routeName); if (path != null) { request.ODataProperties().Path = path; } return(request); }
/// <summary> /// Initializes a new instance of the routing configuration class. /// </summary> /// <returns>A new instance of the routing configuration class.</returns> internal static IWebApiAssembliesResolver Create(MockAssembly assembly = null) { IRouteBuilder builder = RoutingConfigurationFactory.Create(); ApplicationPartManager applicationPartManager = builder.ApplicationBuilder.ApplicationServices.GetRequiredService <ApplicationPartManager>(); applicationPartManager.ApplicationParts.Clear(); if (assembly != null) { AssemblyPart part = new AssemblyPart(assembly); applicationPartManager.ApplicationParts.Add(part); } return(new WebApiAssembliesResolver(applicationPartManager)); }