private async Task <List <string> > GetProPackageListAsync() { using var client = new CliHttpClient(); var url = $"{CliUrls.WwwRocketIo}api/app/nugetPackage/proPackageNames"; var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( url : url, cancellationToken : CancellationTokenProvider.Token, logger : Logger ); if (responseMessage.IsSuccessStatusCode) { return(JsonSerializer.Deserialize <List <string> > (await responseMessage.Content.ReadAsStringAsync())); } var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; var remoteServiceErrorMessage = await RemoteServiceExceptionHandler.GetRocketRemoteServiceErrorAsync(responseMessage); if (remoteServiceErrorMessage != null) { exceptionMessage += remoteServiceErrorMessage; } Logger.LogError(exceptionMessage); return(null); }
private async Task <bool> CheckProLicenseAsync() { if (!AuthService.IsLoggedIn()) { return(false); } try { var url = $"{CliUrls.WwwAbpIo}api/license/check-user"; using (var client = new CliHttpClient()) { using (var response = await client.GetHttpResponseMessageWithRetryAsync(url, CancellationTokenProvider.Token, Logger)) { if (!response.IsSuccessStatusCode) { throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); } await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); var responseContent = await response.Content.ReadAsStringAsync(); return(JsonSerializer.Deserialize <bool>(responseContent)); } } } catch (Exception) { return(false); } }
private async Task <bool> CheckMultipleOrganizationsAsync(string username) { var url = $"{CliUrls.WwwAbpIo}api/license/check-multiple-organizations?username={username}"; using (var client = new CliHttpClient()) { var response = await client.GetHttpResponseMessageWithRetryAsync( url, CancellationTokenProvider.Token, Logger); if (!response.IsSuccessStatusCode) { throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); } await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); var responseContent = await response.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize <bool>(responseContent); return(result); } }
public async Task <SemanticVersion> GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) { if (AuthService.IsLoggedIn()) { if (_proPackageList == null) { _proPackageList = await GetProPackageListAsync(); } } string url; if (includeNightly) { url = $"https://www.myget.org/F/abp-nightly/api/v3/flatcontainer/{packageId.ToLowerInvariant()}/index.json"; } else if (_proPackageList?.Contains(packageId) ?? false) { url = await GetNuGetUrlForCommercialPackage(packageId); } else { url = $"https://api.nuget.org/v3-flatcontainer/{packageId.ToLowerInvariant()}/index.json"; } using (var client = new CliHttpClient(setBearerToken: false)) { var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( url, cancellationToken : CancellationTokenProvider.Token, logger : Logger ); await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); var responseContent = await responseMessage.Content.ReadAsStringAsync(); var versions = JsonSerializer .Deserialize <NuGetVersionResultDto>(responseContent) .Versions .Select(SemanticVersion.Parse) .OrderByDescending(v => v, new VersionComparer()).ToList(); if (!includeNightly && !includeReleaseCandidates) { versions = versions.Where(x => !x.IsPrerelease).ToList(); } var semanticVersions = versions.ToList(); return(semanticVersions.Any() ? semanticVersions.Max() : null); } }
public async Task <string> GetApiKeyAsync() { try { using (var client = new CliHttpClient(TimeSpan.FromMinutes(1))) { var response = await client.GetHttpResponseMessageWithRetryAsync( url : $"{CliUrls.WwwAbpIo}api/myget/apikey/", cancellationToken : CancellationTokenProvider.Token, logger : Logger ); return(Encoding.Default.GetString(await response.Content.ReadAsByteArrayAsync())); } } catch (Exception) { return(""); } }
public async Task <DeveloperApiKeyResult> GetApiKeyOrNullAsync(bool invalidateCache = false) { if (!AuthService.IsLoggedIn()) { return(null); } if (invalidateCache) { _apiKeyResult = null; } if (_apiKeyResult != null) { return(_apiKeyResult); } var url = $"{CliUrls.WwwAbpIo}api/license/api-key"; using (var client = new CliHttpClient()) { var response = await client.GetHttpResponseMessageWithRetryAsync( url : url, cancellationToken : CancellationTokenProvider.Token, logger : _logger); if (!response.IsSuccessStatusCode) { throw new Exception($"ERROR: Remote server returns '{response.StatusCode}'"); } await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); var responseContent = await response.Content.ReadAsStringAsync(); var apiKeyResult = JsonSerializer.Deserialize <DeveloperApiKeyResult>(responseContent); return(apiKeyResult); } }
public async Task <List <string> > GetPackageVersionListAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) { if (AuthService.IsLoggedIn()) { _proPackageList ??= await GetProPackageListAsync(); } string url; if (includeNightly) { url = $"https://www.myget.org/F/abp-nightly/api/v3/flatcontainer/{packageId.ToLowerInvariant()}/index.json"; } else if (_proPackageList?.Contains(packageId) ?? false) { url = await GetNuGetUrlForCommercialPackage(packageId); } else { url = $"https://api.nuget.org/v3-flatcontainer/{packageId.ToLowerInvariant()}/index.json"; } using (var client = new CliHttpClient(setBearerToken: false)) { using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( url, cancellationToken: CancellationTokenProvider.Token, logger: Logger )) { await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); var responseContent = await responseMessage.Content.ReadAsStringAsync(); return(JsonSerializer.Deserialize <NuGetVersionResultDto>(responseContent).Versions); } } }