예제 #1
0
        public List <Sitemapnode> GetNodesBy(string controller, string action, string[] querykeys = null)
        {
            SiteMapNodes = new List <Sitemapnode>();
            Sitemapnode firstNode = CustomSitemap.SiteMap.SiteMapNodes.FirstOrDefault();

            if (querykeys != null)
            {
                HasControllerAndAction(firstNode, controller, action, querykeys);
            }
            else
            {
                HasControllerAndAction(firstNode, controller, action);
            }
            SiteMapNodes.Add(firstNode);
            SiteMapNodes.Reverse();
            return(SiteMapNodes);
        }
예제 #2
0
 bool HasControllerAndAction(Sitemapnode node, string controller, string action)
 {
     if (controller == node.controller && action == node.action)
     {
         SiteMapNodes.Add(node);
         return(true);
     }
     else if (node.haschildren)
     {
         foreach (var item in node.SiteMapNodes)
         {
             if (HasControllerAndAction(item, controller, action))
             {
                 if (!SiteMapNodes.Exists(w => w.title == item.title))
                 {
                     SiteMapNodes.Add(item);
                 }
                 return(true);
             }
         }
         return(false);
     }
     return(false);
 }
예제 #3
0
 bool HasControllerAndAction(Sitemapnode node, string controller, string action, string[] querykeys)
 {
     if (controller == node.controller && action == node.action && querykeys.Contains(node.querykey, StringComparer.OrdinalIgnoreCase))
     {
         SiteMapNodes.Add(node);
         return(true);
     }
     else if (node.haschildren)
     {
         foreach (var item in node.SiteMapNodes)
         {
             if (HasControllerAndAction(item, controller, action, querykeys))
             {
                 if (!SiteMapNodes.Exists(w => w.title == item.title))
                 {
                     SiteMapNodes.Add(item);
                 }
                 return(true);
             }
         }
         return(false);
     }
     return(false);
 }