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);
}