private async Task UpdateAllProjects(Solution solution) { _returnResults = true; await Run(); var findPackage = new FindPackageCommand(solution.SolutionFullPath, NugetPackage, true); findPackage.Execute(); var results = findPackage.Results; // // Get the intended Nuget Package information from nuget.org // var request = NugetPackageHttpRequest.QueryRequest(NugetPackage, true); var result = await request.ExecuteAsync(); var found = ValidateNugetPackage(result); foreach (var item in results) { var foundProject = solution.Projects.FirstOrDefault(x => x.ProjectName.Equals(item.ProjectName)); UpdateProjectNugetPackage(foundProject); } }
private async Task UpdatePerProject(Solution solution) { // // Validate the project existence // var foundProject = solution.Projects.FirstOrDefault(x => x.ProjectName.Equals(ProjectName)); if (foundProject == null) { throw new ProjectNotFoundException($"Cannot find project name '{ProjectName}' in this solution"); } // // Validate the nuget package existence // var foundNugetPackage = foundProject.Packages.FirstOrDefault(x => x.PackageName.Equals(NugetPackage)); if (foundNugetPackage == null) { throw new NugetPackageNotFoundException($"Cannot find the nuget package '{NugetPackage}' for project '{ProjectName}'"); } // // Get the intended Nuget Package information from nuget.org var request = NugetPackageHttpRequest.QueryRequest(NugetPackage, true); var result = await request.ExecuteAsync(); var found = ValidateNugetPackage(result); if (found) { UpdateProjectNugetPackage(foundProject); } }
public async Task Query_Package_Expected_Successful(string packageName, bool preRelease) { // // Arrange var request = NugetPackageHttpRequest.QueryRequest(packageName, preRelease); // // Act var response = await request.ExecuteAsync(); var foundVersion = response.GetCurrentVersion(packageName); // // Assert Assert.True(foundVersion.StartsWith("3.", System.StringComparison.Ordinal) || foundVersion.StartsWith("4.", System.StringComparison.Ordinal)); }
private async Task GetOnlinePackagesAsync(Project project) { var projectPackages = new List <NugetPackageInformationComparer>(); if (project.ProjectType == SolutionProjectElement.CSharpProject) { foreach (var package in project.Packages) { if (NugetPackageCache.Instance.ContainsPackage(package.PackageName)) { var latestPackageInfo = NugetPackageCache.Instance.GetPackage(package.PackageName); projectPackages.Add(new NugetPackageInformationComparer(package, latestPackageInfo.Data)); continue; } var requestor = NugetPackageHttpRequest.QueryRequest(package.PackageName, _showPreReleaseNugetPackages); var response = await requestor.ExecuteAsync(); var selectedDatum = response.Data.FirstOrDefault(x => x.Id.Equals(package.PackageName)); // if selectedDatum is null, try do ToLower() on the Id property. if (selectedDatum == null) { selectedDatum = response.Data.FirstOrDefault(x => x.Id.ToLower().Equals(package.PackageName)); } if (selectedDatum != null) { NugetPackageCache.Instance.AddPackage(selectedDatum.Id, selectedDatum.Version, selectedDatum); } else { NugetPackageCache.Instance.AddNotFoundPackage(package.PackageName, package.Version); } projectPackages.Add(new NugetPackageInformationComparer(package, selectedDatum)); _writeProgressHandler?.Invoke(); } } Result[project.ProjectName] = projectPackages; }
private async Task <Dictionary <string, string> > QueryNugetPackageOnlineAsync(string[] packageNameList, Action writeProgressHandler = null) { var result = new Dictionary <string, string>(); foreach (var packageName in packageNameList) { var request = NugetPackageHttpRequest.QueryRequest(packageName, false); var response = await request.ExecuteAsync(); if (response.Exception != null) { result[packageName] = "Unable to connect to the internet"; } else { var packageVersion = response.GetCurrentVersion(packageName); result[packageName] = packageVersion; } writeProgressHandler?.Invoke(); } return(result); }