コード例 #1
0
        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);
        }
コード例 #2
0
 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;
 }