public void AddMatch(ITournMatch match) { foreach (ITournPlayer player1 in (IEnumerable <ITournPlayer>)match.Players) { if (!player1.IsBye) { foreach (ITournPlayer player2 in (IEnumerable <ITournPlayer>)match.Players) { if (!player2.IsBye && player1.ID != player2.ID) { TournPlayerArray tournPlayerArray = new TournPlayerArray(); if (this.ContainsKey(player1.ID)) { tournPlayerArray = this[player1.ID]; } else { this.Add(player1.ID, tournPlayerArray); } tournPlayerArray.AddPlayer(player2); } } } } }
private void ResetForm() { this.currentMatch = (ITournMatch)null; this.p1match = (ITournMatch)null; this.p2match = (ITournMatch)null; this.InitMatchResults(); this.InitCurrentMatches(); }
private ITournMatch CreateBlankMatch() { ITournMatch tournMatch = (ITournMatch) new TournMatch(); tournMatch.Round = this.CurrentTournament.CurrentRound; ITournMatchArray byRound = this.CurrentTournament.Matches.GetByRound(tournMatch.Round); byRound.SortByRoundTable(); tournMatch.Table = byRound[byRound.Count - 1].Table + 1; return(tournMatch); }
public void Copy(ITournMatch match) { TournPlayerArray tournPlayerArray = new TournPlayerArray(); tournPlayerArray.Append(match.Players); this._players = new TournPlayerArray(); this._players.Append((ITournPlayerArray)tournPlayerArray); this._winner = match.Winner; this._status = match.Status; this._round = match.Round; this._table = match.Table; }
private void BindMatches() { this.dgMatches.DataSource = (object)TournMatchArray.GetDataTable(this.Matches, false, this.Tournament.TableOffset, this.Tournament.Players); this.dgMatches.Columns["MatchObject"].Visible = false; this.dgMatches.Columns["Player 1 Object"].Visible = false; this.dgMatches.Columns["Player 2 Object"].Visible = false; this.dgMatches.Columns["Result"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; foreach (DataGridViewRow row in (IEnumerable)this.dgMatches.Rows) { if (row.Cells["MatchObject"].Value != null) { ITournMatch tournMatch = (ITournMatch)row.Cells["MatchObject"].Value; row.Cells["Result"].Value = (object)tournMatch.StatusText; } } }
private void btnLookup_Click(object sender, EventArgs e) { this.currentMatch = (ITournMatch)null; this.p1match = (ITournMatch)null; this.p2match = (ITournMatch)null; this.InitMatchResults(); this.InitCurrentMatches(); int result1 = 0; int result2 = 0; int.TryParse(this.txtRound.Text, out result1); int.TryParse(this.txtTable.Text, out result2); if (result2 == 0 || result1 == 0) { int num1 = (int)MessageBox.Show("Invalid round or table"); } else if (this.currentTournament == null) { int num2 = (int)MessageBox.Show("Invalid tournament"); } else { int table = result2 - this.currentTournament.TableOffset; this.currentMatch = this.currentTournament.Matches.GetByRoundTable(result1, table); if (this.currentMatch == null) { int num3 = (int)MessageBox.Show("Match for round and table not found"); } else { this.InitMatchResults(); ITournMatchArray byRound = this.currentTournament.Matches.GetByRound(this.currentTournament.CurrentRound); ITournMatchArray byPlayer1 = byRound.GetByPlayer(this.currentMatch.Players[0].ID); ITournMatchArray byPlayer2 = byRound.GetByPlayer(this.currentMatch.Players[1].ID); this.p1match = byPlayer1.Count <= 0 ? (ITournMatch)null : byPlayer1[0]; this.p2match = byPlayer2.Count <= 0 ? (ITournMatch)null : byPlayer2[0]; if (this.p1match != null && this.p2match != null && this.p1match.Table > this.p2match.Table) { ITournMatch p2match = this.p2match; this.p2match = this.p1match; this.p1match = p2match; } this.InitCurrentMatches(); } } }
private void ddlDroppedPlayers_SelectedIndexChanged(object sender, EventArgs e) { if (this.CurrentTournament == null) { int num = (int)MessageBox.Show("Error reading tournament info"); this.DialogResult = DialogResult.Cancel; this.Close(); } if (this.ddlDroppedPlayers.SelectedIndex < 0) { int num1 = (int)MessageBox.Show("Invalid Player"); } else { this.currentPlayer = (ITournPlayer)this.ddlDroppedPlayers.SelectedItem; this.listCurrentPairings.Items.Clear(); this.listNewPairings.Items.Clear(); int round = this.CurrentTournament.CurrentRound - 1; ITournMatchArray byRound = this.CurrentTournament.Matches.GetByPlayer(this.currentPlayer.ID).GetByRound(round); if (byRound.Count == 0) { int num2 = (int)MessageBox.Show("Player was not in previous round"); } else { if (byRound[0].Players[0].ID == byRound[0].Winner) { this.chkPrevRoundP1Drop.Text = byRound[0].Players[0].FullNameWithId + " (Winner)"; this.chkPrevRoundP2Drop.Text = byRound[0].Players[1].FullNameWithId; } else if (byRound[0].Players[1].ID == byRound[0].Winner) { this.chkPrevRoundP1Drop.Text = byRound[0].Players[0].FullNameWithId; this.chkPrevRoundP2Drop.Text = byRound[0].Players[1].FullNameWithId + " (Winner)"; } else { this.chkPrevRoundP1Drop.Text = string.Format("{0} ({1})", (object)byRound[0].Players[0].FullNameWithId, (object)byRound[0].StatusText); this.chkPrevRoundP2Drop.Text = byRound[0].Players[1].FullNameWithId; } this.chkPrevRoundP1Drop.Checked = byRound[0].Players[0].DropRound == round; this.chkPrevRoundP2Drop.Checked = byRound[0].Players[1].DropRound == round; this.radioREOSwapDrops.Enabled = byRound[0].Players[0].IsActive ^ byRound[0].Players[1].IsActive; this.CurrentMatches = this.CurrentTournament.Matches.GetPairedDown(this.CurrentTournament.CurrentRound); foreach (ITournMatch currentMatch in (IEnumerable <ITournMatch>) this.CurrentMatches) { if (currentMatch.Players.HasPlayer(Player.BYE_ID) && currentMatch.Winner != Player.BYE_ID) { this.playerVsBye = currentMatch; this.radioREOVsCurrentPlayerWithBye.Enabled = true; using (IEnumerator <ITournPlayer> enumerator = currentMatch.Players.GetEnumerator()) { while (enumerator.MoveNext()) { ITournPlayer current = enumerator.Current; if (!current.IsBye) { this.radioREOVsCurrentPlayerWithBye.Text = string.Format("Pair vs. Bye Player: {0} ({1} pts)", (object)current.FullNameWithId, (object)current.Points); } } break; } } } this.radioREOByeLoss.Enabled = true; this.radioREOByeWin.Enabled = true; this.radioREORePairings.Enabled = true; byRound.SortByPoints(); for (int index = this.CurrentMatches.Count - 1; index >= 0; --index) { if (this.CurrentMatches[index].Points > this.currentPlayer.Tie1_Wins) { this.CurrentMatches.RemoveAt(index); } } Random random = new Random(); for (int pointCount = 0; pointCount <= this.currentPlayer.Tie1_Wins; ++pointCount) { if (this.CurrentMatches.GetByPoints(this.CurrentTournament.CurrentRound, pointCount).Count == 0) { ITournMatchArray byPoints = this.CurrentTournament.Matches.GetByPoints(this.CurrentTournament.CurrentRound, pointCount); if (byPoints.Count > 0) { this.CurrentMatches.AddMatch(byPoints[random.Next(byPoints.Count - 1)]); } } } this.CurrentMatches.SortByPoints(); foreach (ITournMatch currentMatch in (IEnumerable <ITournMatch>) this.CurrentMatches) { this.listCurrentPairings.Items.Add((object)string.Format("#{0}: {1} ({2} pts) vs {3} ({4} pts)", (object)(currentMatch.Table + this.CurrentTournament.TableOffset), (object)currentMatch.Players[0].FullNameWithId, (object)currentMatch.Players[0].Tie1_Wins, (object)currentMatch.Players[1].FullNameWithId, (object)currentMatch.Players[1].Tie1_Wins)); } this.PendingMatches.Clear(); ITournPlayer player1 = this.currentPlayer; foreach (ITournMatch currentMatch in (IEnumerable <ITournMatch>) this.CurrentMatches) { TournMatch tournMatch = new TournMatch(currentMatch); this.PendingMatches.AddMatch((ITournMatch)tournMatch); ITournPlayer currentPlayer = this.currentPlayer; ITournPlayer player2 = !tournMatch.Players[0].IsBye ? (!tournMatch.Players[1].IsBye ? (tournMatch.Players[0].Tie1_Wins <= tournMatch.Players[1].Tie1_Wins ? (tournMatch.Players[0].Tie1_Wins >= tournMatch.Players[1].Tie1_Wins ? tournMatch.Players[random.Next(tournMatch.Players.Count - 1)] : tournMatch.Players[0]) : tournMatch.Players[1]) : tournMatch.Players[1]) : tournMatch.Players[0]; tournMatch.Players.RemovePlayer(player2); tournMatch.Players.AddPlayer(player1); tournMatch.Winner = Player.BYE_ID; tournMatch.Status = TournMatchResult.Incomplete; player1 = player2; } if (!player1.IsBye) { ITournMatch blankMatch = this.CreateBlankMatch(); blankMatch.Players.AddPlayer(player1); blankMatch.Players.AddPlayer((ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer)); blankMatch.Winner = player1.ID; blankMatch.Status = TournMatchResult.Winner; this.PendingMatches.AddMatch(blankMatch); } foreach (ITournMatch pendingMatch in (List <ITournMatch>) this.PendingMatches) { this.listNewPairings.Items.Add((object)string.Format("#{0}: {1} ({2} pts) vs {3} ({4} pts)", (object)(pendingMatch.Table + this.CurrentTournament.TableOffset), (object)pendingMatch.Players[0].FullNameWithId, (object)pendingMatch.Players[0].Tie1_Wins, (object)pendingMatch.Players[1].FullNameWithId, (object)pendingMatch.Players[1].Tie1_Wins)); } this.chkPrintNewResultSlips.Enabled = true; } } }
private void btnApplyChanges_Click(object sender, EventArgs e) { this.currentPlayer.DropRound = 0; this.currentPlayer.DropReason = CutType.Active; if (this.radioREOByeLoss.Checked) { ITournMatch blankMatch = this.CreateBlankMatch(); blankMatch.Players.AddPlayer(this.currentPlayer); blankMatch.Players.AddPlayer((ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer)); blankMatch.Winner = Player.BYE_ID; blankMatch.Status = TournMatchResult.Winner; this.PendingMatches.Clear(); this.NewMatches.AddMatch(blankMatch); } else if (this.radioREOByeWin.Checked) { ITournMatch blankMatch = this.CreateBlankMatch(); blankMatch.Players.AddPlayer(this.currentPlayer); blankMatch.Players.AddPlayer((ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer)); blankMatch.Winner = this.currentPlayer.ID; blankMatch.Status = TournMatchResult.Winner; this.PendingMatches.Clear(); this.NewMatches.AddMatch(blankMatch); } else if (this.radioREORePairings.Checked) { this.NewMatches.Append((ITournMatchArray)this.PendingMatches); this.PendingMatches.Clear(); } else if (this.radioREOSwapDrops.Checked) { int round = this.CurrentTournament.CurrentRound - 1; ITournMatchArray byPlayer1 = this.CurrentTournament.Matches.GetByPlayer(this.currentPlayer.ID); if (byPlayer1.Count == 0) { int num = (int)MessageBox.Show("Error"); return; } ITournMatchArray byRound1 = byPlayer1.GetByRound(round); if (byRound1.Count > 1) { int num = (int)MessageBox.Show("Error"); return; } ITournPlayer byId = this.CurrentTournament.Players.FindById(byRound1[0].GetOpponentId(this.currentPlayer.ID)); byId.DropRound = round; byId.DropReason = CutType.Drop; ITournMatchArray byPlayer2 = this.CurrentTournament.Matches.GetByPlayer(byId.ID); if (byPlayer2.Count == 0) { int num = (int)MessageBox.Show("Error"); return; } ITournMatchArray byRound2 = byPlayer2.GetByRound(this.CurrentTournament.CurrentRound); if (byRound2.Count > 1) { int num = (int)MessageBox.Show("Error"); return; } TournMatch tournMatch = new TournMatch(byRound2[0]); tournMatch.Players.RemovePlayer(byId); tournMatch.Players.AddPlayer(this.currentPlayer); tournMatch.Winner = Player.BYE_ID; tournMatch.Status = TournMatchResult.Incomplete; this.PendingMatches.Clear(); this.NewMatches.AddMatch((ITournMatch)tournMatch); } else if (this.radioREOVsCurrentPlayerWithBye.Checked) { this.playerVsBye.Players.SortByIDByesLast(); this.playerVsBye.Players.RemoveAt(this.playerVsBye.Players.Count - 1); this.playerVsBye.Players.AddPlayer(this.currentPlayer); this.playerVsBye.Winner = Player.BYE_ID; this.playerVsBye.Status = TournMatchResult.Incomplete; this.PendingMatches.Clear(); this.NewMatches.AddMatch(this.playerVsBye); } this.DialogResult = DialogResult.OK; }
private ITournMatchArray GetMatches() { if (this.rdoAllMatches.Checked) { ITournMatchArray byRound = this.TargetTournament.Matches.GetByRound(this.Round); ITournMatchArray tournMatchArray = (ITournMatchArray) new TournMatchArray(); foreach (ITournMatch match in (IEnumerable <ITournMatch>)byRound) { if (match.Players.FindById(Player.BYE_ID) == null) { tournMatchArray.AddMatch(match); } } return(tournMatchArray); } try { TournMatchArray tournMatchArray = new TournMatchArray(); char[] separator = new char[1] { '-' }; string[] strArray1 = this.txtSpecificMatches.Text.Split(new char[1] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (strArray1.Length == 0) { return((ITournMatchArray)tournMatchArray); } foreach (string str in strArray1) { string[] strArray2 = str.Split(separator, StringSplitOptions.RemoveEmptyEntries); if (strArray2.Length != 0) { int result1 = 0; int result2 = 0; if (!int.TryParse(strArray2[0], out result1)) { throw new Exception("Invalid print range"); } if (strArray2.Length >= 2) { int.TryParse(strArray2[1], out result2); } int table = result1; do { ITournMatch byRoundTable = this.TargetTournament.Matches.GetByRoundTable(this.Round, table); if (byRoundTable != null) { tournMatchArray.AddMatch(byRoundTable); } ++table; }while (table <= result2); } } return((ITournMatchArray)tournMatchArray); } catch (Exception ex) { } return((ITournMatchArray) new TournMatchArray()); }
public TournMatch(ITournMatch match) { this.Copy(match); }