Example #1
0
        public ProcessViewModel(ExtendProcess process)
        {
            this.process = process;

            foreach (ExtendProcess child in process.Children)
            {
                innerProcesses.Add(new ProcessViewModel(child));
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }