Exemple #1
0
        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;
        }
Exemple #3
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);
        }
Exemple #4
0
        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();
                }
            }
        }
Exemple #5
0
 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;
         }
     }
 }
Exemple #6
0
 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;
 }
Exemple #7
0
 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);
        }