From ab1cc93e2d4e90a09c75d2979532a3791f93a44d Mon Sep 17 00:00:00 2001 From: JusterZhu Date: Sun, 24 May 2026 17:06:05 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20Phase=203=20=E2=80=94=20async=20bac?= =?UTF-8?q?kup=20wrappers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added StorageManager.BackupAsync / RestoreAsync / CleanBackupAsync (async wrappers delegating to existing sync methods via Task.Run) - DiffMode wiring + strategy orchestrator integration pending #357 merge Partial #358 --- .../FileSystem/StorageManager.cs | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/c#/GeneralUpdate.Core/FileSystem/StorageManager.cs b/src/c#/GeneralUpdate.Core/FileSystem/StorageManager.cs index dec71e13..e53bc4e3 100644 --- a/src/c#/GeneralUpdate.Core/FileSystem/StorageManager.cs +++ b/src/c#/GeneralUpdate.Core/FileSystem/StorageManager.cs @@ -231,7 +231,21 @@ private static void CopyDirectory(string sourceDir, string targetDir) } } - #endregion + + public static async System.Threading.Tasks.Task BackupAsync(string sourcePath, string backupPath, System.Collections.Generic.IReadOnlyList directoryNames) + { + await System.Threading.Tasks.Task.Run(() => Backup(sourcePath, backupPath, directoryNames)).ConfigureAwait(false); + } + + public static async System.Threading.Tasks.Task RestoreAsync(string backupPath, string sourcePath) + { + await System.Threading.Tasks.Task.Run(() => Restore(backupPath, sourcePath)).ConfigureAwait(false); + } + + public static async System.Threading.Tasks.Task CleanBackupAsync(string installPath, int keepVersions = 3) + { + await System.Threading.Tasks.Task.Run(() => CleanBackup(installPath, keepVersions)).ConfigureAwait(false); + } #endregion #region Private Methods @@ -312,7 +326,21 @@ public static IReadOnlyList ListBackups(string installPath) .ToList(); } - #endregion + + public static async System.Threading.Tasks.Task BackupAsync(string sourcePath, string backupPath, System.Collections.Generic.IReadOnlyList directoryNames) + { + await System.Threading.Tasks.Task.Run(() => Backup(sourcePath, backupPath, directoryNames)).ConfigureAwait(false); + } + + public static async System.Threading.Tasks.Task RestoreAsync(string backupPath, string sourcePath) + { + await System.Threading.Tasks.Task.Run(() => Restore(backupPath, sourcePath)).ConfigureAwait(false); + } + + public static async System.Threading.Tasks.Task CleanBackupAsync(string installPath, int keepVersions = 3) + { + await System.Threading.Tasks.Task.Run(() => CleanBackup(installPath, keepVersions)).ConfigureAwait(false); + } #endregion } /// Backup configuration.