public List <T_TreeMenuModel> TreeChildren(List <T_TreeModel> node, int parentId) { List <T_TreeMenuModel> newnode = new List <T_TreeMenuModel>(); var parent = node.Where(w => w.ParentId == parentId).OrderBy(b => b.Listorder).ToList(); if (parent.Count() > 0) { foreach (var item in parent) { T_TreeMenuModel data = new T_TreeMenuModel(); data.Id = item.Id; data.Name = item.Name; data.ChineseName = item.ChineseName; data.Keys = item.Keys; data.Listorder = item.Listorder; data.iconCls = item.Icon; data.Icon = item.Icon; data.Enable = item.Enable; data.Url = item.Url; data.ParentId = item.ParentId; if (node.Count(w => w.ParentId == item.Id) > 0) { data.children = TreeChildren(node, item.Id); } newnode.Add(data); } } return(newnode); }
public List <T_TreeMenuModel> Tree(Dictionary <string, object> dictionary = null) { List <T_TreeMenuModel> result = new List <T_TreeMenuModel>(); T_TreeMenuModel data = new T_TreeMenuModel(); List <T_TreeModel> list = new List <T_TreeModel>(); Expression <Func <T_Tree, bool> > lambdaWhere = null; foreach (var dic in dictionary) { switch (dic.Key) { case "Enable": lambdaWhere = f => f.Enable == true; break; default: break; } } list = dal.Filter(lambdaWhere).DTOList().ToList(); var parent = list.Where(w => w.ParentId == null).OrderBy(b => b.Listorder).ToList(); foreach (var item in parent) { data = new T_TreeMenuModel(); data.Id = item.Id; data.Name = item.Name; data.ChineseName = item.ChineseName; data.Keys = item.Keys; data.Listorder = item.Listorder; data.iconCls = item.Icon; data.Icon = item.Icon; data.Enable = item.Enable; data.Url = item.Url; if (list.Count(w => w.ParentId == item.Id) > 0) { data.children = TreeChildren(list, item.Id); } result.Add(data); } return(result); }