public void ParseFile(string path)
        {
            var rows = DataTools.ReadAllLines(path);

            foreach (var row in rows)
            {
                Proc p = new Proc(row);
                AllProcs.Add(p.ProcId, p);
            }
        }
        public bool FindGroup(string procId)
        {
            Group.Clear();

            if (!AllProcs.ContainsKey(procId))
            {
                return(false);
            }

            Proc p = AllProcs[procId];

            Group.Add(p.ProcId, p.ProcId);
            AddToGroup(p.Connections);
            return(true);
        }
        public int FindAllGroups()
        {
            int    groups = 0;
            string procId;

            while (AllProcs.Count > 0)
            {
                procId = AllProcs.Keys.FirstOrDefault();
                if (FindGroup(procId))
                {
                    groups++;
                    foreach (var key in Group.Keys)
                    {
                        AllProcs.Remove(key);
                    }
                }
            }

            return(groups);
        }