public static void PopulateCollection(List<string> nestedProjects) { AllLines = new List<NestedProject>(); Children = new List<string>(); Parents = new List<string>(); foreach (var line in nestedProjects) { var trimmedLine = line.Trim(); var tokens = trimmedLine.Split(Constants.SPACE_CHAR); var nestedProject = new NestedProject { Parent = Common.TrimToken(tokens[2], 1, 2), Child = Common.TrimToken(tokens[0], 1, 2) }; AllLines.Add(nestedProject); if(!Children.Contains(nestedProject.Child)) { Children.Add(nestedProject.Child); } if(!Parents.Contains(nestedProject.Parent)) { Parents.Add(nestedProject.Parent); } } RootParents = new List<string>(); foreach(var parent in Parents) { if(!Children.Contains(parent)) { RootParents.Add(parent); } } NestedProjects = new List<string>(); NestedFolders = new List<string>(); foreach(var child in Children) { if(!IsParent(child)) { NestedProjects.Add(child); } else { NestedFolders.Add(child); } } }
public static bool IsRootFolder(NestedProject nestedProject) { return RootParents.Contains(nestedProject.Parent); }