示例#1
0
        private void BWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                this.OnHandledException(e.Error);
                this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None));
            }
            else if (e.Cancelled)
            {
            }
            else
            {
                if (e.Result is PSO2UpdateResult)
                {
                    PSO2UpdateResult updateresult = e.Result as PSO2UpdateResult;
                    switch (updateresult.StatusCode)
                    {
                    case UpdateResult.Failed:
                        LogManager.GeneralLog.Print(updateresult.StatusMessage, LogLevel.Error);
                        break;

                    case UpdateResult.MissingSomeFiles:
                        LogManager.GeneralLog.Print(updateresult.StatusMessage, LogLevel.Error);
                        break;

                    default:
                        LogManager.GeneralLog.Print(updateresult.StatusMessage);
                        break;
                    }
                    this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None));
                }
            }
        }
        private void Anothersmallthreadpool_KaboomFinished(object sender, KaboomFinishedEventArgs e)
        {
            this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None));
            if (e.Error != null)
            {
                this.OnHandledException(e.Error);
                if (this.myFileList.Count > 0)
                {
                    this.myFileList.Clear();
                }
                anothersmallthreadpool.Dispose();
            }
            else
            {
                LogManager.GeneralLog.Print(PSO2UpdateResult.GetMsg(e.Result, e.FailedList == null ? 0 : e.FailedList.Count), LogLevel.Info);
                System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(delegate
                {
                    switch (e.Result)
                    {
                    case UpdateResult.Cancelled:
                        if (e.UserToken != null && e.UserToken is PrepatchWorkerParams)
                        {
                            PrepatchWorkerParams wp = e.UserToken as PrepatchWorkerParams;
                            if (this.myFileList.Count > 0)
                            {
                                this.myFileList.Clear();
                            }
                            this.OnPrepatchDownloaded(new PSO2NotifyEventArgs(true, false, e.FailedList));
                        }
                        break;

                    case UpdateResult.Failed:
                        if (e.UserToken != null && e.UserToken is PrepatchWorkerParams)
                        {
                            PrepatchWorkerParams wp = e.UserToken as PrepatchWorkerParams;
                            if (this.myFileList.Count > 0)
                            {
                                this.myFileList.Clear();
                            }
                            this.OnPrepatchDownloaded(new PSO2NotifyEventArgs(wp.NewVersion.ToString(" revision "), false, e.FailedList));
                        }
                        break;

                    default:
                        if (e.UserToken != null && e.UserToken is PrepatchWorkerParams)
                        {
                            PrepatchWorkerParams wp = e.UserToken as PrepatchWorkerParams;
                            if (this.myFileList.Count > 0)
                            {
                                this.WritePatchListOut(wp.PSO2Path);
                                this.myFileList.Clear();
                            }
                            MySettings.PSO2PrecedeVersion = wp.NewVersion;
                            this.OnPrepatchDownloaded(new PSO2NotifyEventArgs(wp.NewVersion.ToString(" revision "), false));
                        }
                        break;
                    }
                    anothersmallthreadpool.Dispose();
                }));
            }
        }
示例#3
0
        private void Anothersmallthreadpool_KaboomFinished(object sender, KaboomFinishedEventArgs e)
        {
            this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None));
            if (e.Error != null)
            {
                this.OnHandledException(e.Error);
            }
            else
            {
                LogManager.GeneralLog.Print(PSO2UpdateResult.GetMsg(e.Result, e.FailedList == null ? 0 : e.FailedList.Count), LogLevel.Info);
                switch (e.Result)
                {
                case UpdateResult.Cancelled:
                    if (e.UserToken != null && e.UserToken is WorkerParams)
                    {
                        WorkerParams wp = e.UserToken as WorkerParams;
                        if (wp.Installation)
                        {
                            this.OnPSO2Installed(new PSO2NotifyEventArgs(true, wp.PSO2Path, e.FailedList));
                        }
                        else
                        {
                            this.OnPSO2Installed(new PSO2NotifyEventArgs(true, false, e.FailedList));
                        }
                    }
                    break;

                case UpdateResult.Failed:
                    if (e.UserToken != null && e.UserToken is WorkerParams)
                    {
                        WorkerParams wp = e.UserToken as WorkerParams;
                        if (wp.Installation)
                        {
                            MySettings.PSO2Dir = wp.PSO2Path;
                            this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, wp.PSO2Path, e.FailedList));
                        }
                        else
                        {
                            this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, false, e.FailedList));
                        }
                    }
                    break;

                default:
                    if (e.UserToken != null && e.UserToken is WorkerParams)
                    {
                        WorkerParams wp = e.UserToken as WorkerParams;
                        if (!string.IsNullOrWhiteSpace(wp.NewVersionString))
                        {
                            MySettings.PSO2Version = wp.NewVersionString;
                        }
                        if (wp.Installation)
                        {
                            MySettings.PSO2Dir = wp.PSO2Path;
                            this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, wp.PSO2Path));
                        }
                        else
                        {
                            this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, false));
                        }
                    }
                    break;
                }
            }
            anothersmallthreadpool.Dispose();
        }