Browse Source

Update NuGetService.cs

pull/6693/head
Alper Ebicoglu 6 years ago
parent
commit
a2a376b719
  1. 120
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs

120
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs

@ -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; }
} }
} }
} }
Loading…
Cancel
Save