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 async Task SeederActionHandler(SeederAction seederAction) { if (seederAction.ActionType == SeederActionType.Noop) { return; } if (seederAction.ActionType == SeederActionType.Stop) { await _processController.StopGame(_context.IsSeeding()); return; } if (seederAction.ActionType == SeederActionType.Seed) { await AttempSeeding(seederAction); return; } throw new ArgumentException("Unknow SeederAction ActionType."); }