Example #1
0
        public static IDictionary<string, string> LookupRouteValues
            (HttpContextBase httpContext, IEnumerable<RouteDescriptor>
            routeDescriptors,
            string routePath) {
            var queryStringIndex = routePath.IndexOf('?');
            var routePathNoQueryString = queryStringIndex == -1 ? routePath : routePath.Substring(0, queryStringIndex);
            var queryString = queryStringIndex == -1 ? null : routePath.Substring(queryStringIndex + 1);

            var lookupContext = new LookupHttpContext(httpContext, routePathNoQueryString);
            var matches = routeDescriptors
                .Invoke(routeDescriptor => routeDescriptor.Route.GetRouteData(lookupContext), NullLogger.Instance)
                .Where(routeData => routeData != null)
                .Select(data => ToRouteValues(data, queryString));

            return matches.FirstOrDefault();
        }
        public static IDictionary <string, string> LookupRouteValues
            (HttpContextBase httpContext, IEnumerable <RouteDescriptor>
            routeDescriptors,
            string routePath)
        {
            var queryStringIndex       = routePath.IndexOf('?');
            var routePathNoQueryString = queryStringIndex == -1 ? routePath : routePath.Substring(0, queryStringIndex);
            var queryString            = queryStringIndex == -1 ? null : routePath.Substring(queryStringIndex + 1);

            var lookupContext = new LookupHttpContext(httpContext, routePathNoQueryString);
            var matches       = routeDescriptors
                                .Invoke(routeDescriptor => routeDescriptor.Route.GetRouteData(lookupContext), NullLogger.Instance)
                                .Where(routeData => routeData != null)
                                .Select(data => ToRouteValues(data, queryString));

            return(matches.FirstOrDefault());
        }