public TreeNode[] ChildrensByUser(PLMPackEntities db, AspNetUser user) { List <TreeNode> nodes = new List <TreeNode>(); foreach (TreeNode tn in Childrens) { if (tn.IsShared(db, user) && user.HasGroupOfInterest(tn.Group)) { nodes.Add(tn); } } nodes.Sort(); return(nodes.ToArray()); }
public void Print(PLMPackEntities db, AspNetUser user, string offset) { // node not shared with user or user has no interest in group that created node if (!IsShared(db, user) || !user.HasGroupOfInterest(Group)) { return; } // actually show node Console.WriteLine(string.Format("{0}->{1}", offset, Name)); // show childrens foreach (TreeNode tn in Childrens) { tn.Print(db, user, offset + " "); } }
public static TreeNode[] GetRootNodes(PLMPackEntities db, AspNetUser user) { TreeNode[] tNodes = db.TreeNodes.Where( tn => string.IsNullOrEmpty(tn.ParentNodeId) ).ToArray(); List <TreeNode> rootNodes = new List <TreeNode>(); foreach (TreeNode tn in tNodes) { if (tn.IsShared(db, user) && (user.HasGroupOfInterest(tn.Group) || (tn.Group.Id == user.GroupId))) { rootNodes.Add(tn); } } return(rootNodes.ToArray()); }