in src/PortingAssistantExtensionServer/Services/AnalysisService.cs [50:93]
public async Task<SolutionAnalysisResult> AssessSolutionAsync(AnalyzeSolutionRequest request)
{
try
{
// Clean up the existing result before run full assessment
Cleanup();
_request = request;
var startTime = DateTime.Now;
runId = Guid.NewGuid().ToString();
var triggerType = "InitialRequest";
var solutionAnalysisResult = await _client.AnalyzeSolutionAsync(request.solutionFilePath, request.settings);
if (PALanguageServerConfiguration.EnabledMetrics)
{
Collector.SolutionAssessmentCollect(
solutionAnalysisResult,
runId,
triggerType,
_request.settings.TargetFramework,
PALanguageServerConfiguration.ExtensionVersion,
PALanguageServerConfiguration.VisualStudioVersion,
DateTime.Now.Subtract(startTime).TotalMilliseconds);
}
CreateClientConnectionAsync(request.PipeName);
return solutionAnalysisResult;
}
catch (Exception ex)
{
_logger.LogError(ex, $"Analyze solution {request.solutionFilePath} with error: ");
return new SolutionAnalysisResult
{
ProjectAnalysisResults = new List<ProjectAnalysisResult> {
new ProjectAnalysisResult
{
PreportMetaReferences = new List<string>(),
MetaReferences = new List<string>(),
ExternalReferences = new ExternalReferences(),
ProjectRules = new RootNodes(),
PackageAnalysisResults = new Dictionary<PackageVersionPair, Task<PackageAnalysisResult>>()
}
},
};
}
}