private MenuItemContract Walk(IList <MenuItemContract> source, MenuItemContract current) { var children = source.Where(p => p.ParentMenuId == current.MenuId).ToList(); if (children.Count > 0) { var item = new CompositeMenuItemContract() { RoleId = current.RoleId, RoleName = current.RoleName, Name = current.Name, Action = current.Action, MenuId = current.MenuId, ParentMenuId = current.ParentMenuId, OrderBy = current.OrderBy, Category = current.Category, Attributes = current.Attributes }; foreach (var child in children) { item.Items.Add(Walk(source, child)); } item.Items.Sort(); return(item); } return(current); }
private MenuItemContract Walk(IList<MenuItemContract> source, MenuItemContract current) { var children = source.Where(p => p.ParentMenuId == current.MenuId).ToList(); if (children.Count > 0) { var item = new CompositeMenuItemContract() { RoleId = current.RoleId, RoleName = current.RoleName, Name = current.Name, Action = current.Action, MenuId = current.MenuId, ParentMenuId = current.ParentMenuId, OrderBy = current.OrderBy, Category = current.Category, Attributes = current.Attributes }; foreach (var child in children) { item.Items.Add(Walk(source, child)); } item.Items.Sort(); return item; } return current; }