コード例 #1
0
ファイル: UpdateInfo.cs プロジェクト: frozen4/UnityPlus
 public static void SetStateString(UPDATE_STATE state)
 {
     SetStatus(GetStateString(state));
 }
コード例 #2
0
        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
                    );
            }
        }
コード例 #3
0
ファイル: UpdateInfo.cs プロジェクト: frozen4/UnityPlus
    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);
    }