private void AttachUpdateCheckControl() { if (this.InvokeRequired == true) { this.Invoke(new AttachUpdateCheckControlDelegate(AttachUpdateCheckControl)); } else { _accountControlsPanel.Controls.Clear(); _updateCheckControl = new Controls.UpdateCheckControl(); _updateCheckControl.AutoupdateComplete += new Client.Controls.UpdateCheckControl.AutoupdateCompleteHandler(_updateCheckControl_AutoupdateComplete); _updateCheckControl.Dock = DockStyle.Fill; _accountControlsPanel.Controls.Add(_updateCheckControl); } }
void _playControl_RequestUpdateCheck(LobbyType lobbyType, PlayControl.LoginToLobbyCallback loginToLobbyCallback) { _updateCheckControl = new UpdateCheckControl(); if (_updateCheckControl.HasPendingUpdates == true) { SystemWatcher.Close(); _playControl.Visible = false; _updateCheckControl.Parent = _mainTabControl.TabPages[0]; _updateCheckControl.Dock = DockStyle.Fill; _updateCheckControl.AutoupdateComplete += new UpdateCheckControl.AutoupdateCompleteHandler(delegate(bool updateCanceled) { _updateCheckControl.Visible = false; _playControl.Visible = true; if (updateCanceled == false) { SystemWatcher.InitializeWithAutoupdateProtectedFileList(); loginToLobbyCallback(lobbyType); } }); _updateCheckControl.Show(); } else { SystemWatcher.InitializeWithAutoupdateProtectedFileList(); loginToLobbyCallback(lobbyType); } }
private void UpdateCheck_Load(object sender, EventArgs e) { _updateStatusLabel.Text = String.Empty; TaskHandler.RunTask(delegate(object input) { object[] parameters = input as object[]; UpdateCheckControl formReference = parameters[0] as UpdateCheckControl; DebugDetector.AssertCheckRunning(); if (HasPendingUpdates == true) { var signal = new TaskDelegate(delegate(object data) { var updateCount = Convert.ToInt32(data); if (MessageBox.Show(new Form() { TopMost = true }, "Free Allegiance Updater has " + updateCount + " files to download.\nYou will not be able to play until these updates are installed.\nWould you like to do this now?", "New updates found!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { MessageBox.Show(new Form() { TopMost = true }, "Please restart the application when you are ready to apply updates.", "Update Canceled", MessageBoxButtons.OK, MessageBoxIcon.Information); Application.Exit(); } }); if (this.InvokeRequired == true) { this.Invoke(signal, PendingUpdates.PendingUpdateCount); } else { signal(PendingUpdates.PendingUpdateCount); } } else { return; } //Get available lobbies UpdateProgress(String.Empty, "Checking lobby status...", 0); var lobbies = ServiceHandler.Service.CheckAvailableLobbies(); foreach (var lobby in lobbies) { if (formReference._abortUpdate == true) { break; } UpdateProgress(lobby.Name, "Checking lobby for updates.", 0); if (AutoUpdate.ProcessPendingUpdates(PendingUpdates, lobby, new AutoUpdate.AutoupdateProgressCallback(UpdateProgress), this)) { return; } } TaskDelegate onUpdateCompleteHandler = delegate(object data) { UpdateCheckControl updateCompleteFormReference = data as UpdateCheckControl; if (AutoupdateComplete != null) { AutoupdateComplete(updateCompleteFormReference._abortUpdate); } }; if (formReference.InvokeRequired == true) { formReference.Invoke(onUpdateCompleteHandler, formReference); } else { onUpdateCompleteHandler(formReference); } }, this); }