public ProcessViewModel(ExtendProcess process) { this.process = process; foreach (ExtendProcess child in process.Children) { innerProcesses.Add(new ProcessViewModel(child)); } }
public IEnumerable <ExtendProcess> Build() { var sortedNodesByParentId = unorderedNodes.OrderBy(node => node.ProcessId).ToArray(); for (int i = 0; i < sortedNodesByParentId.Length; ++i) { ExtendProcess parent = FindInTree(sortedNodesByParentId[i].ParentId); if ((sortedNodesByParentId[i].ParentId == 0 && sortedNodesByParentId[i].ProcessId == 0) || parent == null) { orderedNodes.Add(sortedNodesByParentId[i]); } else { parent.Children.Add(sortedNodesByParentId[i]); } } return(orderedNodes); }
private ExtendProcess FindInNode(ExtendProcess node, int itemId) { ExtendProcess finded = null; foreach (ExtendProcess child in node.Children) { if (child.ProcessId.Equals(itemId)) { finded = child; break; } else if (child.Children.Count != 0) { finded = FindInNode(child, itemId); if (finded != null) { break; } } } return(finded); }
private ExtendProcess FindInTree(int itemId) { ExtendProcess finded = null; foreach (ExtendProcess node in unorderedNodes) { if (node.ProcessId.Equals(itemId)) { finded = node; break; } else if (node.Children.Count != 0) { finded = FindInNode(node, itemId); if (finded != null) { break; } } } return(finded); }