Пример #1
0
 public void Add(SitemapNode siteMap)
 {
     _siteMaps.Add(siteMap);
 }
Пример #2
0
 private SitemapNode GetCurrentNode(SitemapNode parent)
 {
     if (parent.IsCurrent)
     {
         return parent;
     }
     return parent.Nodes.FirstNotNull(x => GetCurrentNode(x));
 }
Пример #3
0
 private void Filter(IPrincipal user, SitemapNode sitemapNode, RequestContext requestContext)
 {
     foreach (var child in sitemapNode.Nodes)
     {
         Filter(user, child, requestContext);
     }
 }
Пример #4
0
        private SitemapNode FindSitemapNode(string nodeName, SitemapNode node)
        {
            if (string.IsNullOrEmpty(nodeName) || string.Equals(nodeName, node.Name, StringComparison.OrdinalIgnoreCase))
            {
                return node;
            }

            foreach (var child in node.Nodes)
            {
                var foundInChild = FindSitemapNode(nodeName, child);
                if (foundInChild != null)
                {
                    return foundInChild;
                }
            }
            return null;
        }
Пример #5
0
 private SitemapNode Create(SitemapNodeDefination sitemapNodeDefination, SitemapNode parent, RequestContext requestContext)
 {
     SitemapNode node = new SitemapNode
     {
         Icon = sitemapNodeDefination.Icon,
         Name = sitemapNodeDefination.Name,
         Parent = parent,
         Url = sitemapNodeDefination.Url.MakeUrl(requestContext),
         IsCurrent = sitemapNodeDefination.Url.IsCurrent(requestContext),
         Text = sitemapNodeDefination.Text(),
         Group = sitemapNodeDefination.Group(),
         Order = sitemapNodeDefination.Order,
         IsHidden = sitemapNodeDefination.IsHidden,
     };
     foreach (var childNodeDefination in sitemapNodeDefination.Nodes)
     {
         var childNode = Create(childNodeDefination, node, requestContext);
         if (childNode.IsCurrent)
         {
             childNode.InCurrent = true;
         }
         node.Nodes.Add(childNode);
     }
     node.Nodes = node.Nodes.OrderBy(x => x.Order).ToList();
     return node;
 }