private async Task AttempSeeding(SeederAction seederAction) { if (!await CanSeed()) { return; } _browserRefreshTimer.Stop(); ContextUpdatedHandler handler = null; handler = (tSender, tE) => { _context.OnContextUpdate -= handler; _context.Session.CurrentServer = seederAction.ServerStatus; DialogResult result = MessageBoxEx.Show("Seeding in 5 seconds.", "Auto-Seeding", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, 5000); if (result == DialogResult.Cancel) { return; } JoinServer(); }; _context.OnContextUpdate += handler; await LoadPage(seederAction.ServerStatus.Address); _browserRefreshTimer.Start(); }
private void RefreshPageAndData() { _browserRefreshTimer.Stop(); // Create a single use event handler to fire AttemptSeeding after context is updated // This is so that only refreshes triggerd by PS will fire Seeding. This will prevent changes // made inside the browser (by redirect/javascript/etc.) from firing the Seeding. ContextUpdatedHandler handler = null; handler = async(tSender, tE) => { _context.OnContextUpdate -= handler; //await RefreshServerStatuses(); }; _context.OnContextUpdate += handler; RefreshPage(); _browserRefreshTimer.Start(); }