private void SetChilds(IDbSession session, MaterialTypeModelAdpt item) { var childs = session.Query <MaterialTypeModelAdpt>().Where(c => c.IsUsed == true && c.Parent != null && c.Parent.Id == item.Id).Select(c => c as IHierarchyModel).ToList(); foreach (var node in childs) { SetChilds(session, node as MaterialTypeModelAdpt); } item.Childs = childs; }
private void SetChilds(MaterialTypeModelAdpt node, List <MaterialTypeModelAdpt> list) { var childs = list.Where(c => c.Parent != null && c.Parent.Id == node.Id).Select(c => c as IHierarchyModel).ToList(); if (childs != null && childs.Count != 0) { foreach (var child in childs) { SetChilds(child as MaterialTypeModelAdpt, list); } node.Childs = childs; } }
private void SetMaterialChilds(IDbSession session, MaterialTypeModelAdpt item, List <MaterialModelAdpt> results) { var childs = session.Query <MaterialTypeModelAdpt>().Where(c => c.IsUsed == true && c.Parent != null && c.Parent.Id == item.Id).ToList(); var childTypeIds = childs.Select(c => c.Id).ToList(); var materials = session.Query <MaterialModelAdpt>().Where(c => c.IsUsed == true && childTypeIds.Contains(c.MaterialType.Id)).ToList(); foreach (var mat in materials) { results.Add(mat); } foreach (var type in childs) { SetMaterialChilds(session, type, results); } }