private static IDynamicNode GetNode(IDynamicRoutingContext routingContext, RouteValueDictionary values, bool removeDynamicID) { object value; string valueAsString; if (values.TryGetValue("controller", out value) && (valueAsString = (value as string)) != null && valueAsString.StartsWith("#")) { var node = routingContext.FindNodeByID(valueAsString.Substring(1)); if (node != null) { values["controller"] = GetControllerNameFromNode(node); if (removeDynamicID) { values.Remove("dynamicID"); } } return(node); } if (values.TryGetValue("dynamicID", out value) && (valueAsString = (value as string)) != null) { var node = routingContext.FindNodeByID(valueAsString); if (node != null) { values["controller"] = GetControllerNameFromNode(node); if (removeDynamicID) { values.Remove("dynamicID"); } } return(node); } return(null); }
public DynamicRoute(IDynamicRoutingContext routingContext) : base(null, null) { _routingContextAsFixed = routingContext; RoutingContext = (r => _routingContextAsFixed); }
private static IDynamicNode GetNode(IDynamicRoutingContext routingContext, string path) { return(routingContext.FindNode(path)); }