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; }