private List<string> BuildListOfProjectsNotInASolutionFolder(IEnumerable<string> csprojLines) { var unNestedProjects = new List<string>(); foreach(var line in csprojLines) { var csprojLine = new SolutionFileProjectEntry(line); if(!NestedProjectCollection.NestedProjects.Contains(csprojLine.ProjectGuid)) { unNestedProjects.Add(csprojLine.ProjectGuid); } } return unNestedProjects; }
private void ProcessProjectEntryLines(string rootPath, IEnumerable<string> lines) { foreach (var line in lines){ var projectLine = new SolutionFileProjectEntry(line); var fullPath = rootPath + projectLine.RelativePath; var lang = MapExtensionToLanguage(projectLine.ProjectFileExtension); IProjectFileParser parser; switch (lang){ case ProjectLanguageTypes.Cs: parser = new CsProjFileParser(); break; case ProjectLanguageTypes.Cpp: parser = new CppProjFileParser(); break; case ProjectLanguageTypes.Unknown: default: throw new ArgumentOutOfRangeException(); } var project = new Project{ Name = projectLine.Name, RelativePath = projectLine.RelativePath, FileExtension = projectLine.ProjectFileExtension, ProjectGuid = projectLine.ProjectGuid, ProjectLanguage = lang, }; Projects.Add(project); project.FullPath = fullPath; parser.Parse(project.FullPath, project); } }