MvcContrib.Routing.RegexRoute.RealGetVirtualPath C# (CSharp) Method

RealGetVirtualPath() private static method

private static RealGetVirtualPath ( System.Web.Routing.RequestContext requestContext, RouteValueDictionary values, RegexRoute thisRoute ) : System.Web.Routing.VirtualPathData
requestContext System.Web.Routing.RequestContext
values RouteValueDictionary
thisRoute RegexRoute
return System.Web.Routing.VirtualPathData
        private static VirtualPathData RealGetVirtualPath(RequestContext requestContext, RouteValueDictionary values, RegexRoute thisRoute)
        {
            var pathDictionary = new Dictionary<string, string>();
            if (thisRoute.Defaults != null)
            {
                foreach (var pair in thisRoute.Defaults)
                {
                    pathDictionary.Add(pair.Key, pair.Value.ToString());
                }
            }
            if (values != null)
            {
                foreach (var pair in values)
                {
                    pathDictionary[pair.Key] = pair.Value.ToString();
                }
            }
            string newUrl = thisRoute.UrlGenerator;
            foreach (var pair in pathDictionary)
            {
                newUrl = newUrl.Replace("{" + pair.Key + "}", pair.Value);
            }

            if (Regex.IsMatch(newUrl, @"\{\w+\}"))
            {
                return null;
            }
            return new VirtualPathData(thisRoute, newUrl);
        }