From a2a376b719d4615617e202ca7d8f5b2d70db5595 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Tue, 8 Dec 2020 14:09:34 +0300 Subject: [PATCH] Update NuGetService.cs --- .../Volo/Abp/Cli/NuGet/NuGetService.cs | 120 +++++++++--------- 1 file changed, 62 insertions(+), 58 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs index 45ed071416..2eab1fee4e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs @@ -40,13 +40,43 @@ namespace Volo.Abp.Cli.NuGet } public async Task GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) + { + var versionList = await GetPackageVersionListAsync(packageId, includeNightly, includeReleaseCandidates); + + List versions; + + if (!includeNightly && !includeReleaseCandidates) + { + versions = versionList + .Select(SemanticVersion.Parse) + .OrderByDescending(v => v, new VersionComparer()).ToList(); + + versions = versions.Where(x => !x.IsPrerelease).ToList(); + } + else if (!includeNightly && includeReleaseCandidates) + { + versions = versionList + .Where(v => !v.Contains("-preview")) + .Select(SemanticVersion.Parse) + .OrderByDescending(v => v, new VersionComparer()).ToList(); + } + else + { + versions = versionList + .Select(SemanticVersion.Parse) + .OrderByDescending(v => v, new VersionComparer()).ToList(); + } + + return versions.Any() ? versions.Max() : null; + + } + + public async Task> GetPackageVersionListAsync(string packageId, bool includeNightly = false, + bool includeReleaseCandidates = false) { if (AuthService.IsLoggedIn()) { - if (_proPackageList == null) - { - _proPackageList = await GetProPackageListAsync(); - } + _proPackageList ??= await GetProPackageListAsync(); } string url; @@ -65,48 +95,18 @@ namespace Volo.Abp.Cli.NuGet using (var client = new CliHttpClient(setBearerToken: false)) { - using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( + var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( url, cancellationToken: CancellationTokenProvider.Token, logger: Logger - )) - { - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); - - var responseContent = await responseMessage.Content.ReadAsStringAsync(); - - List versions; - - if (!includeNightly && !includeReleaseCandidates) - { - versions = JsonSerializer - .Deserialize(responseContent) - .Versions - .Select(SemanticVersion.Parse) - .OrderByDescending(v => v, new VersionComparer()).ToList(); - - versions = versions.Where(x => !x.IsPrerelease).ToList(); - } - else if (!includeNightly && includeReleaseCandidates) - { - versions = JsonSerializer - .Deserialize(responseContent) - .Versions - .Where(v => !v.Contains("-preview")) - .Select(SemanticVersion.Parse) - .OrderByDescending(v => v, new VersionComparer()).ToList(); - } - else - { - versions = JsonSerializer - .Deserialize(responseContent) - .Versions - .Select(SemanticVersion.Parse) - .OrderByDescending(v => v, new VersionComparer()).ToList(); - } - - return versions.Any() ? versions.Max() : null; - } + ); + + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + + var responseContent = await responseMessage.Content.ReadAsStringAsync(); + + return JsonSerializer + .Deserialize(responseContent).Versions; } } @@ -123,26 +123,30 @@ namespace Volo.Abp.Cli.NuGet private async Task> GetProPackageListAsync() { using var client = new CliHttpClient(); + var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/proPackageNames"; - using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) - { - if (responseMessage.IsSuccessStatusCode) - { - return JsonSerializer.Deserialize>(await responseMessage.Content.ReadAsStringAsync()); - } + var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( + url: url, + cancellationToken: CancellationTokenProvider.Token, + logger: Logger + ); - var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; - var remoteServiceErrorMessage = await RemoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); + if (responseMessage.IsSuccessStatusCode) + { + return JsonSerializer.Deserialize>(await responseMessage.Content.ReadAsStringAsync()); + } - if (remoteServiceErrorMessage != null) - { - exceptionMessage += remoteServiceErrorMessage; - } + var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; + var remoteServiceErrorMessage = await RemoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); - Logger.LogError(exceptionMessage); - return null; + if (remoteServiceErrorMessage != null) + { + exceptionMessage += remoteServiceErrorMessage; } + + Logger.LogError(exceptionMessage); + return null; } public class NuGetVersionResultDto @@ -151,4 +155,4 @@ namespace Volo.Abp.Cli.NuGet public List Versions { get; set; } } } -} +} \ No newline at end of file