in src/PortingAssistant.Client/Program.cs [163:206]
private static async Task<SolutionAnalysisResult> AnalyzeSolutionGenerator(IPortingAssistantClient portingAssistantClient, string solutionPath, AnalyzerSettings solutionSettings)
{
List<ProjectAnalysisResult> projectAnalysisResults = new List<ProjectAnalysisResult>();
var failedProjects = new List<string>();
var projectAnalysisResultEnumerator = portingAssistantClient.AnalyzeSolutionGeneratorAsync(solutionPath, solutionSettings).GetAsyncEnumerator();
while (await projectAnalysisResultEnumerator.MoveNextAsync().ConfigureAwait(false))
{
var result = projectAnalysisResultEnumerator.Current;
projectAnalysisResults.Add(result);
if (result.IsBuildFailed)
{
failedProjects.Add(result.ProjectFilePath);
}
}
var solutionDetails = new SolutionDetails
{
SolutionName = Path.GetFileNameWithoutExtension(solutionPath),
SolutionFilePath = solutionPath,
Projects = projectAnalysisResults.ConvertAll(p => new ProjectDetails
{
PackageReferences = p.PackageReferences,
ProjectFilePath = p.ProjectFilePath,
ProjectGuid = p.ProjectGuid,
ProjectName = p.ProjectName,
ProjectReferences = p.ProjectReferences,
ProjectType = p.ProjectType,
TargetFrameworks = p.TargetFrameworks,
IsBuildFailed = p.IsBuildFailed
}),
FailedProjects = failedProjects
};
return new SolutionAnalysisResult
{
FailedProjects = failedProjects,
SolutionDetails = solutionDetails,
ProjectAnalysisResults = projectAnalysisResults
};
}