Пример #1
0
        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);
        }
Пример #2
0
 public DynamicRoute(IDynamicRoutingContext routingContext)
     : base(null, null)
 {
     _routingContextAsFixed = routingContext;
     RoutingContext         = (r => _routingContextAsFixed);
 }
Пример #3
0
 private static IDynamicNode GetNode(IDynamicRoutingContext routingContext, string path)
 {
     return(routingContext.FindNode(path));
 }