diff --git a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs
index d604e3f9..1532c63c 100644
--- a/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs
+++ b/aspnet-core/frameworks/src/Lion.AbpPro.Cli.Core/Lion/AbpPro/Cli/Github/AbpProManager.cs
@@ -13,10 +13,38 @@ public class AbpProManager : ITransientDependency, IAbpProManager
_cliOptions = options.Value;
}
+
///
/// 获取最后一个版本
///
public async Task GetLatestSourceCodeVersionAsync()
+ {
+ return await Policy.Handle().RetryAsync(5).ExecuteAsync(async () => await GetLatestVersionAsync());
+ }
+
+
+ ///
+ /// 检查版本是否存在
+ ///
+ public async Task CheckSourceCodeVersionAsync(string version)
+ {
+ return await Policy.Handle().RetryAsync(5).ExecuteAsync(async () => await CheckVersionAsync(version));
+ }
+
+
+ ///
+ /// 下载源码
+ ///
+ public async Task DownloadAsync(string version, string outputPath)
+ {
+ return await Policy.Handle().RetryAsync(5).ExecuteAsync(async () => await DownloadSourceCodeAsync(version, outputPath));
+ }
+
+
+ ///
+ /// 获取最后一个版本
+ ///
+ private async Task GetLatestVersionAsync()
{
var github = new GitHubClient(new ProductHeaderValue(_cliOptions.RepositoryId))
{
@@ -31,7 +59,7 @@ public class AbpProManager : ITransientDependency, IAbpProManager
///
/// 检查版本是否存在
///
- public async Task CheckSourceCodeVersionAsync(string version)
+ private async Task CheckVersionAsync(string version)
{
try
{
@@ -49,11 +77,11 @@ public class AbpProManager : ITransientDependency, IAbpProManager
return false;
}
}
-
+
///
/// 下载源码
///
- public async Task DownloadAsync(string version, string outputPath)
+ private async Task DownloadSourceCodeAsync(string version, string outputPath)
{
var httpClient = _httpClientFactory.CreateClient();
var uri = new Uri($"https://github.com/{_cliOptions.Owner}/{_cliOptions.RepositoryId}/archive/refs/tags/{version}.zip");