public async Task UpdateVersion(ConfigurationItem configItem, IProgress <double> progress = null) { configItem.AssertNotNull(nameof(configItem)); string appDataOldVersionBackupPath = CommonBLL.CreateTempAppDataFolder(); string appDataPath = CommonBLL.CreateTempAppDataFolder(); string appDataUnzippedPath = Path.Combine(appDataPath, "unzipped"); try { Task <byte[]> zipArchiveTask = RetrieveZipFileWithBackup(configItem.Architecture, appDataPath, progress); Task backupTask = Task.Run(() => { Logger.Info($"Creating a backup of the current version at {appDataOldVersionBackupPath}"); BackupCurrentVersion(configItem.DBeaverInstallPath, appDataOldVersionBackupPath); Logger.Info($"The backup has been created"); }); await Task.WhenAll(zipArchiveTask, backupTask); Logger.Info("Unzipping the downloaded archive"); byte[] zipArchive = zipArchiveTask.Result; UnzipArchive(zipArchive, appDataUnzippedPath, progress); Logger.Info("The archive has been successfully unzipped"); Logger.Info($"Patching DBeaver current version at {configItem.DBeaverInstallPath}"); IOUtilities.EmptyFolder(configItem.DBeaverInstallPath); IOUtilities.CopyFolderTo(Path.Combine(appDataUnzippedPath, "dbeaver"), configItem.DBeaverInstallPath, true); Logger.Info("Patching successful"); } finally { Logger.Info("Deleting temp data"); IOUtilities.DeleteFolder(appDataPath); IOUtilities.DeleteFolder(appDataOldVersionBackupPath); Logger.Info("Temp data deleted successfully"); } }
public void IOUtilities_EmptyFolder_Test() { IOUtilities.EmptyFolder(@"C:\temp"); }