示例#1
0
 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);
                 }
             }
         }
     }
 }
示例#2
0
 private void ResetForm()
 {
     this.currentMatch = (ITournMatch)null;
     this.p1match      = (ITournMatch)null;
     this.p2match      = (ITournMatch)null;
     this.InitMatchResults();
     this.InitCurrentMatches();
 }
示例#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);
        }
示例#4
0
        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;
        }
示例#5
0
 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;
         }
     }
 }
示例#6
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();
                }
            }
        }
示例#7
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;
         }
     }
 }
示例#8
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;
 }
示例#9
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());
 }
示例#10
0
 public TournMatch(ITournMatch match)
 {
     this.Copy(match);
 }