public void Add(SitemapNode siteMap) { _siteMaps.Add(siteMap); }
private SitemapNode GetCurrentNode(SitemapNode parent) { if (parent.IsCurrent) { return parent; } return parent.Nodes.FirstNotNull(x => GetCurrentNode(x)); }
private void Filter(IPrincipal user, SitemapNode sitemapNode, RequestContext requestContext) { foreach (var child in sitemapNode.Nodes) { Filter(user, child, requestContext); } }
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; }
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; }