public void Dispose()
 {
     Errors = null;
     SourceFileAnalysisResults = null;
     PackageAnalysisResults    = null;
     PreportMetaReferences     = null;
     MetaReferences            = null;
     ProjectRules               = null;
     ExternalReferences         = null;
     ProjectCompatibilityResult = null;
 }
Пример #2
0
        private ProjectCompatibilityResult GenerateCompatibilityResults(List <SourceFileAnalysisResult> sourceFileAnalysisResults, string projectPath, bool isPorted)
        {
            var projectCompatibilityResult = new ProjectCompatibilityResult()
            {
                IsPorted = isPorted, ProjectPath = projectPath
            };

            sourceFileAnalysisResults.ForEach(SourceFileAnalysisResult =>
            {
                SourceFileAnalysisResult.ApiAnalysisResults.ForEach(apiAnalysisResult =>
                {
                    var currentEntity = projectCompatibilityResult.CodeEntityCompatibilityResults.First(r => r.CodeEntityType == apiAnalysisResult.CodeEntityDetails.CodeEntityType);

                    var hasAction = SourceFileAnalysisResult.RecommendedActions.Any(ra => ra.TextSpan.Equals(apiAnalysisResult.CodeEntityDetails.TextSpan));
                    if (hasAction)
                    {
                        currentEntity.Actions++;
                    }
                    var compatibility = apiAnalysisResult.CompatibilityResults?.FirstOrDefault().Value?.Compatibility;
                    if (compatibility == Compatibility.COMPATIBLE)
                    {
                        currentEntity.Compatible++;
                    }
                    else if (compatibility == Compatibility.INCOMPATIBLE)
                    {
                        currentEntity.Incompatible++;
                    }
                    else if (compatibility == Compatibility.UNKNOWN)
                    {
                        currentEntity.Unknown++;
                    }
                    else if (compatibility == Compatibility.DEPRECATED)
                    {
                        currentEntity.Deprecated++;
                    }
                    else
                    {
                        currentEntity.Unknown++;
                    }
                });
            });

            _logger.LogInformation($"{projectCompatibilityResult.ToString()}");
            return(projectCompatibilityResult);
        }