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);
 }
Exemple #3
0
        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);
        }