public void OneTimeSetup() { _tmpTestProjectsExtractionPath = Path.GetFullPath(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())); Directory.CreateDirectory(_tmpTestProjectsExtractionPath); string testProjectsPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestProjects", "Miniblog.Core-master.zip"); var config = new PortingAssistantConfiguration(); var serviceCollection = new ServiceCollection(); ConfigureServices(serviceCollection, config); var services = serviceCollection.BuildServiceProvider(); portingAssistantClient = services.GetService <IPortingAssistantClient>(); using (ZipArchive archive = ZipFile.Open(testProjectsPath, ZipArchiveMode.Read)) { archive.ExtractToDirectory(_tmpTestProjectsExtractionPath); } var netCoreProjectPath = Path.Combine(_tmpTestProjectsExtractionPath, "Miniblog.Core-master", "Miniblog.Core.sln"); solutionAnalysisResultTask = portingAssistantClient.AnalyzeSolutionAsync(netCoreProjectPath, new AnalyzerSettings() { TargetFramework = "netcoreapp3.1" }); }
public AssessmentService(ILogger <AssessmentService> logger, IPortingAssistantClient client) { _logger = logger; _client = client; _apiAnalysisListeners = new List <OnApiAnalysisUpdate>(); _nugetPackageListeners = new List <OnNugetPackageUpdate>(); }
private PortingAssistantBuilder(PortingAssistantConfiguration configuration, Action <ILoggingBuilder> logConfiguration) { this.LogConfiguration = logConfiguration; this.Configuration = configuration; ConfigureServices(); var services = ServiceCollection.BuildServiceProvider(); this.PortingAssistantClient = services.GetService <IPortingAssistantClient>(); this.ReportExporter = services.GetService <IReportExporter>(); }
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 }); }
public void OneTimeSetup() { _tmpTestProjectsExtractionPath = Path.GetFullPath(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())); Directory.CreateDirectory(_tmpTestProjectsExtractionPath); string testProjectsPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestProjects", "NetFrameworkExample.zip"); var config = new PortingAssistantConfiguration(); var serviceCollection = new ServiceCollection(); ConfigureServices(serviceCollection, config); var services = serviceCollection.BuildServiceProvider(); portingAssistantClient = services.GetService <IPortingAssistantClient>(); using (ZipArchive archive = ZipFile.Open(testProjectsPath, ZipArchiveMode.Read)) { archive.ExtractToDirectory(_tmpTestProjectsExtractionPath); } var netFrameworkProjectPath = Path.Combine(_tmpTestProjectsExtractionPath, "NetFrameworkExample", "NetFrameworkExample.sln"); solutionAnalysisResultTask = portingAssistantClient.AnalyzeSolutionAsync(netFrameworkProjectPath, new AnalyzerSettings() { TargetFramework = "netcoreapp3.1", ContiniousEnabled = true }); string solutionId; using (var sha = SHA256.Create()) { byte[] textData = System.Text.Encoding.UTF8.GetBytes(netFrameworkProjectPath); byte[] hash = sha.ComputeHash(textData); solutionId = BitConverter.ToString(hash); } _tmpSolutionDirectory = Path.Combine(Path.GetTempPath(), solutionId); _tmpSolutionDirectory = _tmpSolutionDirectory.Replace("-", ""); }
public PortingService(ILogger <PortingService> logger, IPortingAssistantClient client) { _client = client; _logger = logger; }