in src/PortingAssistantExtensionServer/Services/PortingService.cs [106:131]
private List<RecommendedAction> GenerateRecommendedActions(ProjectFilePortingRequest request)
{
try
{
var upgradePackagesResults = PackageToAnalysisResults
.Where(p =>
p.CompatibilityResults.TryGetValue(request.TargetFramework, out var compatibilityResult)
&& compatibilityResult.Compatibility == Compatibility.INCOMPATIBLE
&& compatibilityResult.CompatibleVersions.Any()
&& compatibilityResult.CompatibleVersions.Exists(v => !v.Contains("-")));
var packageToRecommendations = upgradePackagesResults.Select(package => new PackageRecommendation()
{
PackageId = package.PackageVersionPair.PackageId,
Version = package.PackageVersionPair.Version,
TargetVersions = new List<string> { package.CompatibilityResults[request.TargetFramework].CompatibleVersions.First(v => !v.Contains("-")) },
RecommendedActionType = RecommendedActionType.UpgradePackage,
});
return packageToRecommendations.Select(r => (RecommendedAction)r).ToList();
}
catch (Exception ex)
{
_logger.LogError(ex, "failed to generate recommended actions ");
return null;
}
}