public static void SetStateString(UPDATE_STATE state) { SetStatus(GetStateString(state)); }
private static void ExtractFiles() { UPDATE_STATE state = UPDATE_STATE.SUCCESS; string backupdirectory = Path.Combine(CUR_DIRECTORY, TEMP_DIRECTORY); var fileMap = new Dictionary <string, string>(); Directory.CreateDirectory(backupdirectory); try { using (var archive = ZipFile.OpenRead(TEMP_UPDATE_ZIP)) { foreach (ZipArchiveEntry file in archive.Entries) { if (string.IsNullOrWhiteSpace(file.Name)) { continue; } string originalFileName = Path.Combine(CUR_DIRECTORY, file.FullName); string backupFolder = Path.Combine(backupdirectory, Path.GetDirectoryName(file.FullName)); string backupFileName = Path.Combine(backupFolder, file.Name); // store file old, new paths for rollback fileMap[originalFileName] = backupFileName; try { Directory.CreateDirectory(backupFolder); File.Move(originalFileName, backupFileName); // attempt to backup and replace old files file.ExtractToFile(originalFileName, true); } catch { state = UPDATE_STATE.FAILED_FILE; // access error usually break; } } } } catch // FileNotFoundException InvalidDataException { state = UPDATE_STATE.FAILED_ZIP; } // remove the update folder regardless of success/broken zip File.Delete(TEMP_UPDATE_ZIP); // either rollback if an error or restart if (state == UPDATE_STATE.SUCCESS && RestartOnComplete) { Application.Restart(); } else { Rollback(fileMap); } if (state != UPDATE_STATE.SUCCESS && RestartOnComplete) { MessageBox.Show( "Updating failed.\r\n WDBX Editor will try again next restart. You can also manually extract `Update.zip`.", "Update Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation ); } }
public static string GetStateString(UPDATE_STATE state) { var updateStringConfig = EntryPoint.Instance.UpdateStringConfigParams; string strStatus = ""; if (updateStringConfig != null) { switch (state) { case UPDATE_STATE.UpdateState_None: strStatus = ""; break; case UPDATE_STATE.UpdateState_Success: strStatus = updateStringConfig.UpdateState_Success; break; case UPDATE_STATE.UpdateState_UpdateVersionFileErr: strStatus = updateStringConfig.UpdateState_UpdateVersionFileErr; break; case UPDATE_STATE.UpdateState_OpenPackFileErr: strStatus = updateStringConfig.UpdateState_OpenPackFileErr; break; case UPDATE_STATE.UpdateState_DiskSpaceFullErr: strStatus = updateStringConfig.UpdateState_DiskSpaceFullErr; break; case UPDATE_STATE.UpdateState_GetLocalVersionErr: strStatus = updateStringConfig.UpdateState_GetLocalVersionErr; break; case UPDATE_STATE.UpdateState_GetNewVersionErr: strStatus = updateStringConfig.UpdateState_GetNewVersionErr; break; case UPDATE_STATE.UpdateState_NetworkErr: strStatus = updateStringConfig.UpdateState_NetworkErr; break; case UPDATE_STATE.UpdateState_NetConnectionErr: strStatus = updateStringConfig.UpdateState_NetConnectionErr; break; case UPDATE_STATE.UpdateState_NetUnstable: strStatus = updateStringConfig.UpdateState_NetUnstable; break; case UPDATE_STATE.UpdateState_DownloadCheck: strStatus = updateStringConfig.UpdateState_DownloadCheck; break; case UPDATE_STATE.UpdateState_LocalVersionTooOldErr: strStatus = updateStringConfig.UpdateState_LocalVersionTooOldErr; break; case UPDATE_STATE.UpdateState_ServerMaintananceErr: strStatus = updateStringConfig.UpdateState_ServerMaintananceErr; break; case UPDATE_STATE.UpdateState_AutoUpdateErr: strStatus = updateStringConfig.UpdateState_AutoUpdateErr; break; case UPDATE_STATE.UpdateState_UnknownErr: strStatus = updateStringConfig.UpdateState_UnknownErr; break; case UPDATE_STATE.UpdateState_DownloadingErrAutoRetry: strStatus = updateStringConfig.UpdateState_DownloadingErrAutoRetry; break; case UPDATE_STATE.UpdateStatus_Start: strStatus = updateStringConfig.UpdateStatus_Start; break; case UPDATE_STATE.UpdateStatus_TryGetLocalVersion: strStatus = updateStringConfig.UpdateStatus_TryGetLocalVersion; break; case UPDATE_STATE.UpdateStatus_TryCheckFreeSpace: strStatus = updateStringConfig.UpdateStatus_TryCheckFreeSpace; break; case UPDATE_STATE.UpdateStatus_TryDNSResolving: strStatus = updateStringConfig.UpdateStatus_TryDNSResolving; break; case UPDATE_STATE.UpdateStatus_TryGetNewVersion: strStatus = updateStringConfig.UpdateStatus_TryGetNewVersion; break; case UPDATE_STATE.UpdateStatus_SuccessGetVersions: strStatus = updateStringConfig.UpdateStatus_SuccessGetVersions; break; case UPDATE_STATE.UpdateStatus_BeginUpdate: strStatus = updateStringConfig.UpdateStatus_BeginUpdate; break; case UPDATE_STATE.UpdateStatus_LastWritePackErr: strStatus = updateStringConfig.UpdateStatus_LastWritePackErr; break; case UPDATE_STATE.UpdateStatus_Downloading: strStatus = updateStringConfig.UpdateStatus_Downloading; break; case UPDATE_STATE.UpdateStatus_WritingPack: strStatus = updateStringConfig.UpdateStatus_WritingPack; break; case UPDATE_STATE.UpdateStatus_DownloadingServerList: strStatus = updateStringConfig.UpdateStatus_DownloadingServerList; break; case UPDATE_STATE.UpdateStatus_CheckingExistPack: strStatus = updateStringConfig.UpdateStatus_CheckingExistPack; break; case UPDATE_STATE.UpdateStatus_PrepareWritingPack: strStatus = updateStringConfig.UpdateStatus_PrepareWritingPack; break; case UPDATE_STATE.UpdateString_CurrentVersion: strStatus = updateStringConfig.UpdateString_CurrentVersion; break; case UPDATE_STATE.UpdateString_ServerVersion: strStatus = updateStringConfig.UpdateString_ServerVersion; break; case UPDATE_STATE.UpdateString_HasErrorNotWifi: strStatus = updateStringConfig.UpdateString_HasErrorNotWifi; break; case UPDATE_STATE.UpdateString_HasErrorRetry: strStatus = updateStringConfig.UpdateString_HasErrorRetry; break; case UPDATE_STATE.UpdateString_Yes: strStatus = updateStringConfig.UpdateString_Yes; break; case UPDATE_STATE.UpdateString_No: strStatus = updateStringConfig.UpdateString_No; break; case UPDATE_STATE.UpdateString_Ok: strStatus = updateStringConfig.UpdateString_Ok; break; case UPDATE_STATE.UpdateString_Cancel: strStatus = updateStringConfig.UpdateString_Cancel; break; case UPDATE_STATE.UpdateString_HasError: strStatus = updateStringConfig.UpdateString_HasError; break; case UPDATE_STATE.UpdateString_HasFatalErrorNeedReinstall: strStatus = updateStringConfig.UpdateString_HasFatalErrorNeedReinstall; break; case UPDATE_STATE.UpdateString_HasFatalErrorNeedCleanUp: strStatus = updateStringConfig.UpdateString_HasFatalErrorNeedCleanUp; break; case UPDATE_STATE.UpdateString_HasFatalError: strStatus = updateStringConfig.UpdateString_HasFatalError; break; case UPDATE_STATE.UpdateString_TextUpdate: strStatus = updateStringConfig.UpdateString_TextUpdate; break; case UPDATE_STATE.UpdateString_FileSize: strStatus = updateStringConfig.UpdateString_FileSize; break; case UPDATE_STATE.UpdateString_DownloadSpeed: strStatus = updateStringConfig.UpdateString_DownloadSpeed; break; case UPDATE_STATE.UpdateString_WifiTips: strStatus = updateStringConfig.UpdateString_WifiTips; break; case UPDATE_STATE.UpdateString_VideoTitle: strStatus = updateStringConfig.UpdateString_VideoTitle; break; case UPDATE_STATE.UpdateString_PictureTitle: strStatus = updateStringConfig.UpdateString_PictureTitle; break; default: strStatus = ""; break; } } return(strStatus); }