Browse Source

Refactor AbpIoSourceCodeStore

pull/3163/head
Alper Ebicoglu 7 years ago
parent
commit
d934a7fc21
  1. 91
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs

91
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs

@ -94,36 +94,48 @@ namespace Volo.Abp.Cli.ProjectBuilding
private async Task<string> GetLatestSourceCodeVersionAsync(string name, string type) private async Task<string> GetLatestSourceCodeVersionAsync(string name, string type)
{ {
using (var client = new CliHttpClient()) var url = $"{CliUrls.WwwAbpIo}api/download/{type}/get-version/";
try
{ {
var response = await client.PostAsync( using (var client = new CliHttpClient(TimeSpan.FromMinutes(10)))
$"{CliUrls.WwwAbpIo}api/download/{type}/get-version/", {
new StringContent( var response = await client.PostAsync(
JsonSerializer.Serialize( url,
new GetLatestSourceCodeVersionDto { Name = name } new StringContent(
JsonSerializer.Serialize(
new GetLatestSourceCodeVersionDto { Name = name }
),
Encoding.UTF8,
MimeTypes.Application.Json
), ),
Encoding.UTF8, CancellationTokenProvider.Token
MimeTypes.Application.Json );
),
CancellationTokenProvider.Token
);
await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response);
var result = await response.Content.ReadAsStringAsync(); var result = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<GetVersionResultDto>(result).Version; return JsonSerializer.Deserialize<GetVersionResultDto>(result).Version;
}
}
catch (Exception ex)
{
Console.WriteLine("Error occured while getting the latest version from {0} : {1}", url, ex.Message);
throw;
} }
} }
private async Task<string> GetTemplateNugetVersionAsync(string name, string type, string version) private async Task<string> GetTemplateNugetVersionAsync(string name, string type, string version)
{ {
var url = $"{CliUrls.WwwAbpIo}api/download/{type}/get-nuget-version/";
try try
{ {
using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) using (var client = new CliHttpClient(TimeSpan.FromMinutes(10)))
{ {
var response = await client.PostAsync( var response = await client.PostAsync(
$"{CliUrls.WwwAbpIo}api/download/{type}/get-nuget-version/", url,
new StringContent( new StringContent(
JsonSerializer.Serialize( JsonSerializer.Serialize(
new GetTemplateNugetVersionDto { Name = name, Version = version } new GetTemplateNugetVersionDto { Name = name, Version = version }
@ -141,40 +153,49 @@ namespace Volo.Abp.Cli.ProjectBuilding
return JsonSerializer.Deserialize<GetVersionResultDto>(result).Version; return JsonSerializer.Deserialize<GetVersionResultDto>(result).Version;
} }
} }
catch (Exception) catch (Exception ex)
{ {
Console.WriteLine("Error occured while getting the NuGet version from {0} : {1}", url, ex.Message);
return null; return null;
} }
} }
private async Task<byte[]> DownloadSourceCodeContentAsync(SourceCodeDownloadInputDto input) private async Task<byte[]> DownloadSourceCodeContentAsync(SourceCodeDownloadInputDto input)
{ {
var postData = JsonSerializer.Serialize(input); var url = $"{CliUrls.WwwAbpIo}api/download/{input.Type}/";
using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) try
{ {
HttpResponseMessage responseMessage; using (var client = new CliHttpClient(TimeSpan.FromMinutes(10)))
if (input.TemplateSource.IsNullOrWhiteSpace())
{
responseMessage = await client.PostAsync(
$"{CliUrls.WwwAbpIo}api/download/{input.Type}/",
new StringContent(postData, Encoding.UTF8, MimeTypes.Application.Json),
CancellationTokenProvider.Token
);
}
else
{ {
responseMessage = await client.GetAsync(input.TemplateSource, CancellationTokenProvider.Token); HttpResponseMessage responseMessage;
if (input.TemplateSource.IsNullOrWhiteSpace())
{
responseMessage = await client.PostAsync(
url,
new StringContent(JsonSerializer.Serialize(input), Encoding.UTF8, MimeTypes.Application.Json),
CancellationTokenProvider.Token
);
}
else
{
responseMessage = await client.GetAsync(input.TemplateSource, CancellationTokenProvider.Token);
}
await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage);
return await responseMessage.Content.ReadAsByteArrayAsync();
} }
}
await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); catch (Exception ex)
{
return await responseMessage.Content.ReadAsByteArrayAsync(); Console.WriteLine("Error occured while downloading source-code from {0} : {1}", url, ex.Message);
throw;
} }
} }
private bool IsNetworkSource(string source) private static bool IsNetworkSource(string source)
{ {
return source.ToLower().StartsWith("http"); return source.ToLower().StartsWith("http");
} }

Loading…
Cancel
Save