private void GenerateMetrics()
        {
            // Gather solution-level metrics
            BuildErrorMetrics      = MetricsTransformer.TransformBuildErrors(Context, PortSolutionResult.BuildErrors);
            ReferencesMetrics      = MetricsTransformer.TransformReferences(Context, PortSolutionResult.References);
            DownloadedFilesMetrics = MetricsTransformer.TransformDownloadedFiles(Context, PortSolutionResult.DownloadedFiles);

            // Gather project-level metrics
            var targetVersionMetrics        = new List <TargetVersionMetric>();
            var upgradePackageMetrics       = new List <UpgradePackageMetric>();
            var actionPackageMetrics        = new List <ActionPackageMetric>();
            var actionExecutionMetrics      = new List <GenericActionExecutionMetric>();
            var missingMetaReferenceMetrics = new List <MissingMetaReferenceMetric>();
            var webFormsActionMetrics       = new List <WebFormsActionMetric>();

            foreach (var projectResult in PortSolutionResult.ProjectResults)
            {
                targetVersionMetrics.AddRange(MetricsTransformer.TransformTargetVersions(Context, projectResult));
                upgradePackageMetrics.AddRange(MetricsTransformer.TransformUpgradePackages(Context, projectResult));
                actionPackageMetrics.AddRange(MetricsTransformer.TransformActionPackages(Context, projectResult));
                actionExecutionMetrics.AddRange(MetricsTransformer.TransformGenericActionExecutions(Context, projectResult));
                missingMetaReferenceMetrics.AddRange(MetricsTransformer.TransformMissingMetaReferences(Context, projectResult));
                webFormsActionMetrics.AddRange(MetricsTransformer.TransformWebFormActionMetrics(Context, projectResult));
            }

            TargetVersionMetrics          = targetVersionMetrics;
            UpgradePackageMetrics         = upgradePackageMetrics;
            ActionPackageMetrics          = actionPackageMetrics;
            GenericActionExecutionMetrics = actionExecutionMetrics;
            MissingMetaReferenceMetrics   = missingMetaReferenceMetrics;
            WebFormsActionMetrics         = webFormsActionMetrics;
        }
        private void GenerateAnalysisMetrics()
        {
            var upgradePackageMetrics       = new List <UpgradePackageMetric>();
            var actionPackageMetrics        = new List <ActionPackageMetric>();
            var actionMetrics               = new List <GenericActionMetric>();
            var featureDetectionMetrics     = new List <FeatureDetectionMetric>();
            var missingMetaReferenceMetrics = new List <MissingMetaReferenceMetric>();

            foreach (var projectResult in PortSolutionResult.ProjectResults)
            {
                upgradePackageMetrics.AddRange(MetricsTransformer.TransformUpgradePackages(Context, projectResult));
                actionPackageMetrics.AddRange(MetricsTransformer.TransformActionPackages(Context, projectResult));
                actionMetrics.AddRange(MetricsTransformer.TransformProjectActions(Context, projectResult));
                missingMetaReferenceMetrics.AddRange(MetricsTransformer.TransformMissingMetaReferences(Context, projectResult));
            }
            featureDetectionMetrics.AddRange(MetricsTransformer.TransformFeatureDetectionResults(Context, FeatureDetectionResults));

            UpgradePackageMetrics       = upgradePackageMetrics;
            ActionPackageMetrics        = actionPackageMetrics;
            GenericActionMetrics        = actionMetrics;
            FeatureDetectionMetrics     = featureDetectionMetrics;
            MissingMetaReferenceMetrics = missingMetaReferenceMetrics;
        }