public void KickJudges(ListView.SelectedIndexCollection judgeIndicies) { foreach (int judgeIndex in judgeIndicies) { JudgeServer.KickJudge(judgeIndex); } }
/// <summary> /// Skapa ett poäng för CurrentDive och lägg till det i Dive /// Skicka poängen till domarklienterna om server /// Skicka poängen till server om client /// </summary> /// <param name="points"></param> /// <param name="judgeIndex"></param> /// <param name="broadcastScore"></param> /// <returns></returns> private Score CreateScoreForDive(double points, int judgeIndex, bool broadcastScore = true, int roundIndex = -1, int diverIndex = -1) { if (roundIndex == -1) { roundIndex = CurrentRoundIndex; } if (diverIndex == -1) { diverIndex = CurrentDiverIndex; } Console.WriteLine(Mode.ToString() + " Scoring: " + points + " for index: " + judgeIndex + " with broadcast:" + broadcastScore.ToString()); Console.WriteLine(Mode.ToString() + " judgeIndex: " + _currentJudgeIndex + ", roundIndex: " + roundIndex + ", diverIndex: " + diverIndex); Judge scoringJudge = Judges[judgeIndex]; Score score = new Score(Divers[diverIndex].Dives[roundIndex], scoringJudge, points); Divers[diverIndex].Dives[roundIndex].AddScore(score); //Add score to current dive _view.PopulateScoreInput(score, judgeIndex, diverIndex, roundIndex); SkipToNonClientJudges(broadcastScore); if (Mode == ViewMode.Client && broadcastScore) { Console.WriteLine(Mode.ToString() + " Commiting score to client (is client)"); _judgeClient.CommitScore(_clientJudgeIndex, score); _view.ToggleControls(false); } else if (Mode == ViewMode.Standalone) { Console.WriteLine(Mode.ToString() + " Broadcasting score (is server)"); JudgeServer.BroadcastScore(score, roundIndex, diverIndex); } if (CurrentDive.Scores.Count == CurrentEvent.Judges.Count && Mode == ViewMode.Standalone) { _view.CurrentDiveScore = CurrentDive.Score; Database.AddScoreToDive(CurrentDive.Scores, CurrentDive); CurrentJudgeIndex = 0; CurrentDiverIndex++; SendStatusToClient(); if (CurrentDiverIndex >= Divers.Count) { CurrentDiverIndex = 0; CurrentRoundIndex++; } _view.CompleteDive(); } return(score); }
public void Close(bool serverTerminating = false, FormClosingEventArgs e = null) { if (Mode == ViewMode.Client) { if (!serverTerminating) { _judgeClient.SendLogout(_clientJudgeIndex); } else { _view.CloseInvoke(); } } else { _view.Hide(); JudgeServer.TerminateServer(true); //JudgeServer.Stop(true); } }
/// <summary> /// Hoppa över hoppare i klient-listan om bedömning sker i standalone /// </summary> private void SkipToNonClientJudges(bool next = false) { if (next) { CurrentJudgeIndex++; } while (JudgeServer.IsJudgeClient(_currentJudgeIndex) && Mode != ViewMode.Client) { Console.WriteLine(Mode.ToString() + " Current: " + _currentJudgeIndex + " is client. ++ing"); _currentJudgeIndex++; } if (_currentJudgeIndex >= Judges.Count) { Console.WriteLine(Mode.ToString() + " Current: " + _currentJudgeIndex + " more than count"); _currentJudgeIndex--; _view.ToggleControls(false); } }
public void StopServer() { JudgeServer.Stop(); }
public void StartServer() { JudgeServer.Start(); }
public void SendStatusToClient() { JudgeServer.SendStatus(); }
public void RequestScoreFromClients() { JudgeServer.RequestScore(); }