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"); _vbTmpTestProjectsExtractionPath = Path.GetFullPath(Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())); Directory.CreateDirectory(_vbTmpTestProjectsExtractionPath); string vbTestProjectsPath = Path.Combine(TestContext.CurrentContext.TestDirectory, "TestProjects", "VBWebApi.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); } using (ZipArchive archive = ZipFile.Open(vbTestProjectsPath, ZipArchiveMode.Read)) { archive.ExtractToDirectory(_vbTmpTestProjectsExtractionPath); } var netFrameworkProjectPath = Path.Combine(_tmpTestProjectsExtractionPath, "NetFrameworkExample", "NetFrameworkExample.sln"); solutionAnalysisResultTask = portingAssistantClient.AnalyzeSolutionAsync(netFrameworkProjectPath, new AnalyzerSettings() { TargetFramework = "netcoreapp3.1" }); var vbNetFrameworkProjectPath = Path.Combine(_vbTmpTestProjectsExtractionPath, "VBWebApi", "VBWebApi.sln"); vbSolutionAnalysisResultTask = portingAssistantClient.AnalyzeSolutionAsync(vbNetFrameworkProjectPath, new AnalyzerSettings() { TargetFramework = "netcoreapp3.1" }); vbSolutionAnalysisResultIncTask = portingAssistantClient.AnalyzeSolutionAsync(vbNetFrameworkProjectPath, new AnalyzerSettings() { TargetFramework = "netcoreapp3.1", ContiniousEnabled = true }); }
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 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()); }
public Response <SolutionDetails, string> AnalyzeSolution(AnalyzeSolutionRequest request) { try { var solutionAnalysisResult = _client.AnalyzeSolutionAsync(request.solutionFilePath, request.settings); solutionAnalysisResult.Wait(); if (solutionAnalysisResult.IsCompletedSuccessfully) { solutionAnalysisResult.Result.ProjectAnalysisResults.ForEach(projectAnalysResult => { if (projectAnalysResult == null) { return; } projectAnalysResult.PackageAnalysisResults.ToList() .ForEach(p => { p.Value.ContinueWith(result => { if (result.IsCompletedSuccessfully) { _nugetPackageListeners.ForEach(l => l.Invoke(new Response <PackageAnalysisResult, PackageVersionPair> { Value = result.Result, Status = Response <PackageAnalysisResult, PackageVersionPair> .Success() })); return; } _nugetPackageListeners.ForEach(l => l.Invoke(new Response <PackageAnalysisResult, PackageVersionPair> { ErrorValue = p.Key, Status = Response <PackageAnalysisResult, PackageVersionPair> .Failed(result.Exception) })); }); }); if (projectAnalysResult.IsBuildFailed) { _apiAnalysisListeners.ForEach(listener => listener.Invoke(new Response <ProjectApiAnalysisResult, SolutionProject> { ErrorValue = new SolutionProject { ProjectPath = projectAnalysResult.ProjectFilePath, SolutionPath = request.solutionFilePath }, Status = Response <ProjectApiAnalysisResult, SolutionProject> .Failed(new PortingAssistantClientException($"Errors during compilation in {projectAnalysResult.ProjectName}.", null)) })); return; } _apiAnalysisListeners.ForEach(listener => { listener.Invoke(new Response <ProjectApiAnalysisResult, SolutionProject> { Value = new ProjectApiAnalysisResult { Errors = projectAnalysResult.Errors, SolutionFile = request.solutionFilePath, ProjectFile = projectAnalysResult.ProjectFilePath, ProjectGuid = projectAnalysResult.ProjectGuid, SourceFileAnalysisResults = projectAnalysResult.SourceFileAnalysisResults }, Status = Response <ProjectApiAnalysisResult, SolutionProject> .Success() }); }); return; }); solutionAnalysisResult.Result.FailedProjects.ForEach(projectFilePath => { _apiAnalysisListeners.ForEach(listener => listener.Invoke(new Response <ProjectApiAnalysisResult, SolutionProject> { ErrorValue = new SolutionProject { ProjectPath = projectFilePath, SolutionPath = request.solutionFilePath }, Status = Response <ProjectApiAnalysisResult, SolutionProject> .Failed(new PortingAssistantClientException($"Errors during compilation in {projectFilePath}.", null)) })); }); return(new Response <SolutionDetails, string> { Value = solutionAnalysisResult.Result.SolutionDetails, Status = Response <SolutionDetails, string> .Success() }); } else { throw new PortingAssistantClientException($"anaylze solution {request.solutionFilePath} failed", solutionAnalysisResult.Exception); } } catch (Exception ex) { return(new Response <SolutionDetails, string> { ErrorValue = request.solutionFilePath, Status = Response <SolutionDetails, string> .Failed(ex) }); } }