public IHttpVirtualPathData GetVirtualPath(HttpRequestMessage request, IDictionary <string, object> values) { if (request == null) { throw Error.ArgumentNull("request"); } HttpContextBase httpContextBase; if (request.Properties.TryGetValue(HttpControllerHandler.HttpContextBaseKey, out httpContextBase)) { HostedHttpRouteData routeData = request.GetRouteData() as HostedHttpRouteData; if (routeData != null) { RequestContext requestContext = new RequestContext(httpContextBase, routeData.OriginalRouteData); VirtualPathData virtualPathData = OriginalRoute.GetVirtualPath(requestContext, new RouteValueDictionary(values)); if (virtualPathData != null) { return(new HostedHttpVirtualPathData(virtualPathData, routeData.Route)); } } } return(null); }
public static RouteData ToRouteData(this IHttpRouteData httpRouteData) { if (httpRouteData == null) { throw Error.ArgumentNull("httpRouteData"); } HostedHttpRouteData hostedHttpRouteData = httpRouteData as HostedHttpRouteData; if (hostedHttpRouteData != null) { return(hostedHttpRouteData.OriginalRouteData); } Route route = httpRouteData.Route.ToRoute(); return(new RouteData(route, HttpControllerRouteHandler.Instance)); }
public static RouteData ToRouteData(this IHttpRouteData httpRouteData) { if (httpRouteData == null) { throw Error.ArgumentNull("httpRouteData"); } HostedHttpRouteData hostedHttpRouteData = httpRouteData as HostedHttpRouteData; if (hostedHttpRouteData != null) { return(hostedHttpRouteData.OriginalRouteData); } Route route = httpRouteData.Route.ToRoute(); RouteData result = new RouteData(route, HttpControllerRouteHandler.Instance); foreach (KeyValuePair <string, object> pair in httpRouteData.Values) { result.Values.Add(pair.Key, pair.Value); } return(result); }