|
|
@ -40,13 +40,43 @@ namespace Volo.Abp.Cli.NuGet |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public async Task<SemanticVersion> GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) |
|
|
public async Task<SemanticVersion> GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) |
|
|
|
|
|
{ |
|
|
|
|
|
var versionList = await GetPackageVersionListAsync(packageId, includeNightly, includeReleaseCandidates); |
|
|
|
|
|
|
|
|
|
|
|
List<SemanticVersion> 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<List<string>> GetPackageVersionListAsync(string packageId, bool includeNightly = false, |
|
|
|
|
|
bool includeReleaseCandidates = false) |
|
|
{ |
|
|
{ |
|
|
if (AuthService.IsLoggedIn()) |
|
|
if (AuthService.IsLoggedIn()) |
|
|
{ |
|
|
{ |
|
|
if (_proPackageList == null) |
|
|
_proPackageList ??= await GetProPackageListAsync(); |
|
|
{ |
|
|
|
|
|
_proPackageList = await GetProPackageListAsync(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
string url; |
|
|
string url; |
|
|
@ -65,48 +95,18 @@ namespace Volo.Abp.Cli.NuGet |
|
|
|
|
|
|
|
|
using (var client = new CliHttpClient(setBearerToken: false)) |
|
|
using (var client = new CliHttpClient(setBearerToken: false)) |
|
|
{ |
|
|
{ |
|
|
using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( |
|
|
var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( |
|
|
url, |
|
|
url, |
|
|
cancellationToken: CancellationTokenProvider.Token, |
|
|
cancellationToken: CancellationTokenProvider.Token, |
|
|
logger: Logger |
|
|
logger: Logger |
|
|
)) |
|
|
); |
|
|
{ |
|
|
|
|
|
await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); |
|
|
await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); |
|
|
|
|
|
|
|
|
var responseContent = await responseMessage.Content.ReadAsStringAsync(); |
|
|
var responseContent = await responseMessage.Content.ReadAsStringAsync(); |
|
|
|
|
|
|
|
|
List<SemanticVersion> versions; |
|
|
return JsonSerializer |
|
|
|
|
|
.Deserialize<NuGetVersionResultDto>(responseContent).Versions; |
|
|
if (!includeNightly && !includeReleaseCandidates) |
|
|
|
|
|
{ |
|
|
|
|
|
versions = JsonSerializer |
|
|
|
|
|
.Deserialize<NuGetVersionResultDto>(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<NuGetVersionResultDto>(responseContent) |
|
|
|
|
|
.Versions |
|
|
|
|
|
.Where(v => !v.Contains("-preview")) |
|
|
|
|
|
.Select(SemanticVersion.Parse) |
|
|
|
|
|
.OrderByDescending(v => v, new VersionComparer()).ToList(); |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
{ |
|
|
|
|
|
versions = JsonSerializer |
|
|
|
|
|
.Deserialize<NuGetVersionResultDto>(responseContent) |
|
|
|
|
|
.Versions |
|
|
|
|
|
.Select(SemanticVersion.Parse) |
|
|
|
|
|
.OrderByDescending(v => v, new VersionComparer()).ToList(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return versions.Any() ? versions.Max() : null; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -123,26 +123,30 @@ namespace Volo.Abp.Cli.NuGet |
|
|
private async Task<List<string>> GetProPackageListAsync() |
|
|
private async Task<List<string>> GetProPackageListAsync() |
|
|
{ |
|
|
{ |
|
|
using var client = new CliHttpClient(); |
|
|
using var client = new CliHttpClient(); |
|
|
|
|
|
|
|
|
var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/proPackageNames"; |
|
|
var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/proPackageNames"; |
|
|
|
|
|
|
|
|
using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) |
|
|
var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( |
|
|
{ |
|
|
url: url, |
|
|
if (responseMessage.IsSuccessStatusCode) |
|
|
cancellationToken: CancellationTokenProvider.Token, |
|
|
{ |
|
|
logger: Logger |
|
|
return JsonSerializer.Deserialize<List<string>>(await responseMessage.Content.ReadAsStringAsync()); |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; |
|
|
if (responseMessage.IsSuccessStatusCode) |
|
|
var remoteServiceErrorMessage = await RemoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); |
|
|
{ |
|
|
|
|
|
return JsonSerializer.Deserialize<List<string>>(await responseMessage.Content.ReadAsStringAsync()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (remoteServiceErrorMessage != null) |
|
|
var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; |
|
|
{ |
|
|
var remoteServiceErrorMessage = await RemoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); |
|
|
exceptionMessage += remoteServiceErrorMessage; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Logger.LogError(exceptionMessage); |
|
|
if (remoteServiceErrorMessage != null) |
|
|
return null; |
|
|
{ |
|
|
|
|
|
exceptionMessage += remoteServiceErrorMessage; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Logger.LogError(exceptionMessage); |
|
|
|
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public class NuGetVersionResultDto |
|
|
public class NuGetVersionResultDto |
|
|
@ -151,4 +155,4 @@ namespace Volo.Abp.Cli.NuGet |
|
|
public List<string> Versions { get; set; } |
|
|
public List<string> Versions { get; set; } |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |