private void ProcessProjectFile(string projectPath, IList <SolutionProject> projects, IEnumerable <string> includeFilter, IEnumerable <string> excludeFilter, ProjectAnalyzer projectAnalyzer, bool allowDuplicates) { ++this.NumberOfProjectsFound; string message = string.Format("Found project {0}", Path.GetFileNameWithoutExtension(projectPath)); bool skip = false; if (includeFilter.Any() && !ProjectHasMatch(projectPath, includeFilter)) { skip = true; } if (excludeFilter.Any() && ProjectHasMatch(projectPath, excludeFilter)) { skip = true; } if (skip) { ++this.NumberOfProjectsSkipped; message += " (skipped)"; } else { var project = new SolutionProject(); project.ProjectTypeId = ProjectTypes.Find(Path.GetExtension(projectPath).Substring(1)).ProjectGuid; project.ProjectId = projectAnalyzer.GetProjectId(); project.Name = Path.GetFileNameWithoutExtension(projectPath); project.Path = Utils.GetRelativePath(this._options.SolutionFolderPath, projectPath); if (!allowDuplicates && projects.Any(x => x.Name == project.Name)) { throw new InvalidOperationException(string.Format("Duplicate project: {0}. All projects should have unique names across the solution.", project.Name)); } projects.Add(project); } this._logger.Write(message); }
private void ProcessProjectFile(string projectPath, IList<SolutionProject> projects, IEnumerable<string> includeFilter, IEnumerable<string> excludeFilter, ProjectAnalyzer projectAnalyzer, bool allowDuplicates) { ++this.NumberOfProjectsFound; string message = string.Format("Found project {0}", Path.GetFileNameWithoutExtension(projectPath)); bool skip = false; if (includeFilter.Any() && !ProjectHasMatch(projectPath, includeFilter)) { skip = true; } if (excludeFilter.Any() && ProjectHasMatch(projectPath, excludeFilter)) { skip = true; } if (skip) { ++this.NumberOfProjectsSkipped; message += " (skipped)"; } else { var project = new SolutionProject(); project.ProjectTypeId = ProjectTypes.Find(Path.GetExtension(projectPath).Substring(1)).ProjectGuid; project.ProjectId = projectAnalyzer.GetProjectId(); project.Name = Path.GetFileNameWithoutExtension(projectPath); project.Path = Utils.GetRelativePath(this._options.SolutionFolderPath, projectPath); if (!allowDuplicates && projects.Any(x => x.Name == project.Name)) { throw new InvalidOperationException(string.Format("Duplicate project: {0}. All projects should have unique names across the solution.", project.Name)); } projects.Add(project); } this._logger.Write(message); }