public static UriMakerContext MapHttpAttributeRoutesAndUseUriMaker(
     this HttpConfiguration configuration,
     IDirectRouteProvider directRouteProvider = null)
 {
     directRouteProvider = directRouteProvider ?? new DefaultDirectRouteProvider();
     var decorator = new DecoratorRouteProvider(directRouteProvider);
     configuration.MapHttpAttributeRoutes(decorator);
     var uriMakerContext = new UriMakerContext(decorator.RouteMap);
     return uriMakerContext;
 }
예제 #2
0
        private static void RegisterDrum(HttpConfiguration config, ContainerBuilder builder)
        {
            // Web API routes
            UriMakerContext uriMakerContext = config.MapHttpAttributeRoutesAndUseUriMaker();

            builder.RegisterInstance(uriMakerContext).ExternallyOwned();
            builder.RegisterHttpRequestMessage(config);
            builder.RegisterGeneric(typeof(UriMaker <>)).AsSelf().InstancePerRequest();

            builder.RegisterType <DrumUrlProvider>().As <IUrlProvider>();
        }
 public static UriMakerContext MapHttpAttributeRoutesAndUseUriMaker(
     this HttpConfiguration configuration,
     IDirectRouteProvider directRouteProvider = null,
     Func<HttpRequestMessage, ICollection<RouteEntry>, RouteEntry> routeSelector = null)
 {
     directRouteProvider = directRouteProvider ?? new DefaultDirectRouteProvider();
     var decorator = new DecoratorRouteProvider(directRouteProvider, routeSelector);
     configuration.MapHttpAttributeRoutes(decorator);
     var uriMakerContext = new UriMakerContext(decorator.RouteMap);
     configuration.Properties.AddOrUpdate(ContextKey, _ => uriMakerContext, (_, __) => uriMakerContext);
     return uriMakerContext;
 }
예제 #4
0
 public DrumUrlProvider(UriMakerContext context, HttpRequestMessage request)
 {
     _context = context;
     _request = request;
 }
예제 #5
0
 public MultipleRouteTests()
 {
     _config = new HttpConfiguration();
     _factory = _config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider(), Selector);
     _config.EnsureInitialized();
 }
 public RouteDataPropagationTests()
 {
     _config = new HttpConfiguration();
     _factory = _config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider());
     _config.EnsureInitialized();
 }
 public UriMakerRequestFlowHandler(UriMakerContext context)
 {
     _context = context;
 }
 public static void FlowUriMakerContextOnRequests(this HttpConfiguration configuration, UriMakerContext uriMakerContext)
 {
     configuration.MessageHandlers.Add(new UriMakerRequestFlowHandler(uriMakerContext));
 }
예제 #9
0
 public MultipleRouteTests()
 {
     _config  = new HttpConfiguration();
     _factory = _config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider(), Selector);
     _config.EnsureInitialized();
 }
예제 #10
0
 public RouteDataPropagationTests()
 {
     _config  = new HttpConfiguration();
     _factory = _config.MapHttpAttributeRoutesAndUseUriMaker(new DefaultDirectRouteProvider());
     _config.EnsureInitialized();
 }