private IEnumerable<MvcSiteMapNode> GetAuthorizedSiteMap(Int32? accountId, IEnumerable<MvcSiteMapNode> nodes)
{
List<MvcSiteMapNode> menuNodes = new List<MvcSiteMapNode>();
foreach (MvcSiteMapNode node in nodes)
{
node.Children = GetAuthorizedSiteMap(accountId, node.Children);
if (node.IsMenu && IsAuthorizedToView(accountId, node) && !IsEmpty(node))
menuNodes.Add(node);
else
menuNodes.AddRange(node.Children);
}
return menuNodes;
}