public async void SearchProjects(string Query) { //get the new results and write them into Results ProjectResults.Clear(); var searchResults = await projectAPI.GetBySearch(Query); foreach (var result in searchResults) { ProjectResults.Add(new ProjectViewModel(result)); } }
private async Task AnalyzeProject(KeyValuePair <string, IProjectAnalyzer> project) { await Task.Run(() => { var projectName = Path.GetFileNameWithoutExtension(project.Key); Console.WriteLine($"Building Project {projectName}"); var results = project.Value.Build().First(); PackagesByProject.TryAdd(projectName, new List <string>()); foreach (var(packageId, attributes) in results.PackageReferences.Where(p => p.Value.ContainsKey("Version"))) { PackagesByProject[projectName].Add(packageId + " " + attributes["Version"]); PackageResults.TryAdd(packageId, attributes["Version"]); } ProjectResults.TryAdd(projectName, results.ProjectReferences.Select(s => Path.GetFileNameWithoutExtension(s !)).ToList()); Console.WriteLine($"Project {projectName} done"); }).ConfigureAwait(false); }
private Dictionary <string, Dictionary <string, int> > GetSolutionBuildErrors() { var buildErrorsByProject = new Dictionary <string, Dictionary <string, int> >(); var codeAnalyzer = GetCodeAnalyzer(); var analyzerResults = new List <AnalyzerResult>(); try { if (ProjectResults.Any(p => p.MetaReferences != null)) { var metaReferences = ProjectResults.ToDictionary(p => p.ProjectFile, p => p.MetaReferences); analyzerResults = codeAnalyzer.AnalyzeSolution(SolutionPath, null, metaReferences).Result; } // Process build errors by project foreach (var analyzerResult in analyzerResults) { if (analyzerResult.ProjectResult != null) { // Count build errors by type var buildErrorCounts = new Dictionary <string, int>(); var buildErrors = analyzerResult.ProjectResult.BuildErrors; buildErrors.ForEach(e => { string errorSeparator = ": error "; var index = e.IndexOf(errorSeparator, StringComparison.InvariantCulture); var s = e[(index + errorSeparator.Length)..]; if (buildErrorCounts.ContainsKey(s)) { buildErrorCounts[s]++; } else { buildErrorCounts.Add(s, 1); } }); var projectPath = analyzerResult.ProjectResult.ProjectFilePath; buildErrorsByProject[projectPath] = buildErrorCounts; }
public async void SearchByCategory(int categoryId) { ProjectResults.Clear(); var searchResults = await projectAPI.GetByCategory(categoryId); }