From d934a7fc214f570f645bf5c95dc52ca073274208 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Thu, 19 Mar 2020 19:11:38 +0300 Subject: [PATCH] Refactor AbpIoSourceCodeStore --- .../ProjectBuilding/AbpIoSourceCodeStore.cs | 91 ++++++++++++------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs index 263b675a2a..1ffdefbe61 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/AbpIoSourceCodeStore.cs @@ -94,36 +94,48 @@ namespace Volo.Abp.Cli.ProjectBuilding private async Task 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( - $"{CliUrls.WwwAbpIo}api/download/{type}/get-version/", - new StringContent( - JsonSerializer.Serialize( - new GetLatestSourceCodeVersionDto { Name = name } + using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) + { + var response = await client.PostAsync( + url, + new StringContent( + JsonSerializer.Serialize( + new GetLatestSourceCodeVersionDto { Name = name } + ), + Encoding.UTF8, + MimeTypes.Application.Json ), - Encoding.UTF8, - MimeTypes.Application.Json - ), - CancellationTokenProvider.Token - ); + 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(result).Version; + return JsonSerializer.Deserialize(result).Version; + } + } + catch (Exception ex) + { + Console.WriteLine("Error occured while getting the latest version from {0} : {1}", url, ex.Message); + throw; } } private async Task GetTemplateNugetVersionAsync(string name, string type, string version) { + var url = $"{CliUrls.WwwAbpIo}api/download/{type}/get-nuget-version/"; + try { using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) { var response = await client.PostAsync( - $"{CliUrls.WwwAbpIo}api/download/{type}/get-nuget-version/", + url, new StringContent( JsonSerializer.Serialize( new GetTemplateNugetVersionDto { Name = name, Version = version } @@ -141,40 +153,49 @@ namespace Volo.Abp.Cli.ProjectBuilding return JsonSerializer.Deserialize(result).Version; } } - catch (Exception) + catch (Exception ex) { + Console.WriteLine("Error occured while getting the NuGet version from {0} : {1}", url, ex.Message); return null; } } private async Task 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; - - 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 + using (var client = new CliHttpClient(TimeSpan.FromMinutes(10))) { - 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); - - return await responseMessage.Content.ReadAsByteArrayAsync(); + } + catch (Exception ex) + { + 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"); }