private void ddlPlayers_SelectedIndexChanged(object sender, EventArgs e) { if (this.currentTournament == null) { return; } ITournPlayer selectedItem = (ITournPlayer)this.ddlPlayers.SelectedItem; if (selectedItem == null) { return; } ITournMatchArray byPlayer = this.currentTournament.Matches.GetByPlayer(selectedItem.ID); byPlayer.SortByRoundTable(); string format = "Round {0} Table {1}: {2} vs {3}\r\n"; this.txtHistory.Text = ""; foreach (ITournMatch tournMatch in (IEnumerable <ITournMatch>)byPlayer) { ITournPlayer tournPlayer = (ITournPlayer) new TournPlayer((IPlayer)Player.ByePlayer); foreach (ITournPlayer player in (IEnumerable <ITournPlayer>)tournMatch.Players) { if (player.ID != selectedItem.ID) { tournPlayer = player; break; } } string str = tournMatch.Status != TournMatchResult.Winner ? Enum.GetName(typeof(TournMatchResult), (object)tournMatch.Status) : (tournMatch.Winner == selectedItem.ID ? "Wins" : "Loses"); this.txtHistory.Text += string.Format(format, (object)tournMatch.Round, (object)(tournMatch.Table + this.currentTournament.TableOffset), (object)str, (object)tournPlayer.ToString()); } }
private void ManualPairings_Load(object sender, EventArgs e) { if (this.Tournament == null) { return; } ITournMatchArray byRound = this.Tournament.Matches.GetByRound(this.Round); this.Matches = (ITournMatchArray) new TournMatchArray(); foreach (ITournMatch match in (IEnumerable <ITournMatch>)byRound) { this.Matches.AddMatch((ITournMatch) new TournMatch(match)); } this.BindMatches(); this.LoadUnassignedPlayers(); this.Matches.SortByRoundTableByesLast(); for (int index = 0; index < (this.listUnassignedPlayers.Items.Count + 1) / 2; ++index) { this.ddlOpenTables.Items.Add((object)(this.Matches[this.Matches.Count - 1].Table + 1 + index)); } if (this.ddlOpenTables.Items.Count <= 0) { return; } this.ddlOpenTables.SelectedIndex = 0; }
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); }
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 int Append(ITournMatchArray NewTournMatches) { this.AddRange((IEnumerable <ITournMatch>)NewTournMatches); this.SortOrder = TournMatchSortOrder.Unsorted; return(this.Count); }
public static DataTable GetDataTable( ITournMatchArray matches, bool viewByPlayer, int tableOffset, ITournPlayerArray tournamentPlayerList) { DataTable dataTable = new DataTable(); dataTable.Columns.Add(new DataColumn("Table", typeof(int))); dataTable.Columns.Add(new DataColumn("Player 1 Object", typeof(ITournPlayer))); dataTable.Columns.Add(new DataColumn("Player 2 Object", typeof(ITournPlayer))); dataTable.Columns.Add(new DataColumn("Player 1", typeof(string))); dataTable.Columns.Add(new DataColumn("Player 2", typeof(string))); dataTable.Columns.Add(new DataColumn("Result", typeof(string))); dataTable.Columns.Add(new DataColumn("MatchObject", typeof(TournMatch))); foreach (TournMatch match in (IEnumerable <ITournMatch>)matches) { DataRow row1 = dataTable.NewRow(); row1["Table"] = (object)(match.Table + tableOffset); if (match.Players.Count < 2) { throw new Exception(string.Format("Match at round {0} table {1} has an invalid number of players", (object)match.Round, (object)match.Table)); } row1["Player 1 Object"] = (object)match.Players[0]; row1["Player 2 Object"] = (object)match.Players[1]; row1["Player 1"] = (object)match.Players[0].ToString(); row1["Player 2"] = (object)match.Players[1].ToString(); row1["MatchObject"] = (object)match; if (match.Status == TournMatchResult.DoubleLoss) { row1["Result"] = (object)"Double Loss"; } else if (match.Status == TournMatchResult.Draw) { row1["Result"] = (object)"Draw"; } else if (match.Status == TournMatchResult.Winner) { if (match.Winner != Player.BYE_ID) { if (tournamentPlayerList.HasPlayer(match.Winner)) { row1["Result"] = (object)tournamentPlayerList.FindById(match.Winner).ToString(); } else if (Engine.PlayerList.HasPlayer(match.Winner)) { row1["Result"] = (object)Engine.PlayerList.FindById(match.Winner).ToString(); } } else if (match.Winner == Player.BYE_ID) { row1["Result"] = (object)Player.ByePlayer.FirstName; } } dataTable.Rows.Add(row1); if (viewByPlayer && !match.Players[1].IsBye) { DataRow row2 = dataTable.NewRow(); row2["Table"] = (object)(match.Table + tableOffset); row2["Player 1 Object"] = (object)match.Players[1]; row2["Player 2 Object"] = (object)match.Players[0]; row2["Player 1"] = (object)match.Players[1].ToString(); row2["Player 2"] = (object)match.Players[0].ToString(); row2["MatchObject"] = (object)match; if (match.Status == TournMatchResult.DoubleLoss) { row2["Result"] = (object)"Double Loss"; } else if (match.Status == TournMatchResult.Draw) { row2["Result"] = (object)"Draw"; } else if (match.Status == TournMatchResult.Winner) { if (match.Winner != Player.BYE_ID) { if (tournamentPlayerList.HasPlayer(match.Winner)) { row2["Result"] = (object)tournamentPlayerList.FindById(match.Winner).ToString(); } else if (Engine.PlayerList.HasPlayer(match.Winner)) { row2["Result"] = (object)Engine.PlayerList.FindById(match.Winner).ToString(); } } else if (match.Winner == Player.BYE_ID) { row2["Result"] = (object)Player.ByePlayer.FirstName; } } dataTable.Rows.Add(row2); } } return(dataTable); }