From 01e7cdfdd54fe544ecdf6d509bdb361ba70fc9cb Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 27 Sep 2022 10:23:12 +0300 Subject: [PATCH] Cli: Get leptonx & framework versions separately --- .../Volo/Abp/Cli/GitHub/GithubRelease.cs | 21 ++++++++++++++++ .../ProjectBuilding/AbpIoSourceCodeStore.cs | 25 +++++++++---------- 2 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/GitHub/GithubRelease.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/GitHub/GithubRelease.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/GitHub/GithubRelease.cs new file mode 100644 index 0000000000..2b51543c89 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/GitHub/GithubRelease.cs @@ -0,0 +1,21 @@ +using System; +using Newtonsoft.Json; + +namespace Volo.Abp.Cli.GitHub; + +[JsonObject] +[Serializable] +public class GithubRelease +{ + [JsonProperty("id")] + public int Id { get; set; } + + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("prerelease")] + public bool IsPrerelease { get; set; } + + [JsonProperty("published_at")] + public DateTime PublishTime { get; set; } +} \ No newline at end of file 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 6f013272c3..0c2f29c737 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 @@ -11,6 +11,7 @@ using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; +using Volo.Abp.Cli.GitHub; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.Cli.ProjectBuilding.Templates.Console; @@ -85,7 +86,7 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency } else { - if (!await IsVersionExists(version)) + if (!await IsVersionExists(name, version)) { throw new Exception("There is no version found with given version: " + version); } @@ -201,7 +202,7 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency } } - private async Task IsVersionExists(string version) + private async Task IsVersionExists(string templateName, string version) { var url = $"{CliUrls.WwwAbpIo}api/download/versions?includePreReleases=true"; @@ -214,9 +215,11 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency { await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(response); var result = await response.Content.ReadAsStringAsync(); - var versions = JsonSerializer.Deserialize>(result); + var versions = JsonSerializer.Deserialize(result); - return versions.Any(v => v.Name == version); + return templateName.Contains("LeptonX") ? + versions.LeptonXVersions.Any(v => v.Name == version) : + versions.FrameworkAndCommercialVersions.Any(v => v.Name == version); } } catch (Exception ex) @@ -324,14 +327,10 @@ public class AbpIoSourceCodeStore : ISourceCodeStore, ITransientDependency public string Version { get; set; } } - public class GithubRelease + public class GithubReleaseVersions { - public int Id { get; set; } - - public string Name { get; set; } - - public bool IsPrerelease { get; set; } - - public DateTime PublishTime { get; set; } + public List FrameworkAndCommercialVersions { get; set; } + + public List LeptonXVersions { get; set; } } -} +} \ No newline at end of file