20230201_145_upperpc/InSituLaboratory/Base/MenuHelper.cs
2024-03-11 13:12:02 +08:00

47 lines
1.5 KiB
C#

using InSituLaboratory.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Base
{
public class MenuHelper
{
public static void FillMenus(ObservableCollection<MenuItemModel> menus,
MenuItemModel parent, List<Entities.SysMenu> origMenus, bool expandedNode = true)
{
var sub = origMenus.Where(m => m.ParentId == (parent == null ? 0 : parent.MenuId))
.OrderBy(o => o.Index)
.ToList();
if (sub.Count() > 0)
{
foreach (Entities.SysMenu item in sub)
{
MenuItemModel model = new MenuItemModel
{
MenuId = item.MenuId,
MenuHeader = item.MenuHeader,
MenuIcon = item.MenuIcon,
TargetView = item.TargetView,
ParentId = (parent == null ? 0 : parent.MenuId),
IsExpanded = expandedNode,
Parent = parent
};
menus.Add(model);
FillMenus(model.Children, model, origMenus);
}
if (menus.Count > 0)
{
menus[menus.Count - 1].IsLastChild = true;
}
}
}
}
}