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>();
 }
Exemple #3
0
        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>();
        }
Exemple #4
0
        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("-", "");
        }
Exemple #6
0
 public PortingService(ILogger <PortingService> logger, IPortingAssistantClient client)
 {
     _client = client;
     _logger = logger;
 }