Esempio n. 1
0
        private bool ValidateEnteredEndGames(List <TableHockeyContestRound> m_enteredRounds, out Dictionary <int, int> m_dictPlayersToNextRound)
        {
            int m_nGamesPerRound = m_currentContest.numberOfRounds;

            m_nContestId = m_currentContest.ContestId;
            //Get round for current round number.
            TableHockeyContestRound m_currentRound = m_enteredRounds.Where(g => g.RoundNumber == m_nCurrentRoundNumber).FirstOrDefault();

            //If everything validates, save results to database and display next round.
            m_dictPlayersToNextRound = TableHockeyContestHandler.getPlayersToNextRound(m_currentRound, m_nGamesPerRound);
            int m_nPlayersToNextRound = m_enteredRounds[0].TableHockeyGame.Count / m_nGamesPerRound;

            return(m_dictPlayersToNextRound.Count == m_nPlayersToNextRound);
        }
        protected void ResultsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                PlaceHolder PlaceHolder1 = (PlaceHolder)e.Item.FindControl("PlaceHolder1");

                // declare/obtain the value of i given the DataItem
                // e.g.,
                TableHockeyContestRound m_round = (TableHockeyContestRound)e.Item.DataItem;
                Dictionary <int, uc.ucViewEndGameSeries> m_ucList;
                if (Session["pgContestSummary.ucList"] != null)
                {
                    m_ucList = (Dictionary <int, uc.ucViewEndGameSeries>)Session["pgContestSummary.ucList"];
                }
                else
                {
                    m_ucList = new Dictionary <int, uc.ucViewEndGameSeries>();
                }

                for (int m_nCurrentTableNumber = 1; m_nCurrentTableNumber <= m_nMaxNumberOfConcurrentGames; m_nCurrentTableNumber++)
                {
                    List <TableHockeyGame> m_gamesOnCurrentTable = m_round.TableHockeyGame.Where(g => g.TableNumber == m_nCurrentTableNumber).ToList();
                    if (m_gamesOnCurrentTable.Count > 0)
                    {
                        TableHockeyContestRound m_roundGame = new TableHockeyContestRound();
                        Mapper.Map(m_round, m_roundGame);
                        m_roundGame.TableHockeyGame = m_gamesOnCurrentTable;
                        uc.ucViewEndGameSeries uc = (uc.ucViewEndGameSeries)LoadControl("~/uc/ucViewEndGameSeries.ascx");
                        uc.InitControl(m_roundGame, 25 * (m_round.RoundNumber - 1));
                        uc.m_nTableNumber = m_nCurrentTableNumber;
                        int m_nNumberOfRounds = Convert.ToInt32(Session["pgContestSummary.m_nNumberOfRounds"]);
                        //Get qualifying players from current round.
                        Dictionary <int, int> m_playersToNextRound = TableHockeyContestHandler.getPlayersToNextRound(m_round, m_gamesOnCurrentTable.Count);
                        if (m_playersToNextRound.Count > 0)
                        {
                            //Get qualifying player for current table number.
                            int m_nQualifyingPlayerForCurrentTableNumber = m_playersToNextRound[m_nCurrentTableNumber];
                            if (m_round.isFinalRound)
                            {
                                m_ucList.Add(8, uc);
                                Session["pgContestSummary.ucList"] = m_ucList;
                            }
                            if (m_round.RoundNumber == (m_nNumberOfRounds - 1))
                            {
                                //Get previous round.
                                TableHockeyContestRound m_prevRound = (TableHockeyContestRound)Session["pgContestSummary.previousRound"];
                                //Match qualifying player id with either home or away player.
                                if ((m_nCurrentTableNumber == 1) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(4, uc);
                                }
                                if ((m_nCurrentTableNumber == 2) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(12, uc);
                                }
                                //TODO: Analogt för följande omgångar. Traversera över m_playersToNextRound
                                Session["pgContestSummary.ucList"] = m_ucList;
                            }
                            if (m_round.RoundNumber == (m_nNumberOfRounds - 2))
                            {
                                //Get previous round.
                                TableHockeyContestRound m_prevRound = (TableHockeyContestRound)Session["pgContestSummary.previousRound"];
                                List <TableHockeyGame>  m_prevGamesOnCurrentTable = m_prevRound.TableHockeyGame.Where(g => g.TableNumber == m_nCurrentTableNumber).ToList();
                                if ((m_nCurrentTableNumber == 1) &&
                                    ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).AwayPlayerId)))
                                {
                                    m_ucList.Add(2, uc);
                                }
                                if ((m_nCurrentTableNumber == 2) &&
                                    ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).AwayPlayerId)))
                                {
                                    m_ucList.Add(6, uc);
                                }
                                if ((m_nCurrentTableNumber == 3) &&
                                    ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).AwayPlayerId)))
                                {
                                    m_ucList.Add(10, uc);
                                }
                                if ((m_nCurrentTableNumber == 4) &&
                                    ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(m_gamesOnCurrentTable.Count).AwayPlayerId)))
                                {
                                    m_ucList.Add(14, uc);
                                }
                                Session["pgContestSummary.ucList"] = m_ucList;
                            }
                            if (m_round.RoundNumber == (m_nNumberOfRounds - 3))
                            {
                                //Get previous round.
                                //TODO:  Fixa för åttondel analogt med kvartsfinal ovan! Gnetigt men det går! 2013-07-23.
                                TableHockeyContestRound m_prevRound = (TableHockeyContestRound)Session["pgContestSummary.previousRound"];
                                List <TableHockeyGame>  m_prevGamesOnCurrentTable = m_prevRound.TableHockeyGame.Where(g => g.TableNumber == m_nCurrentTableNumber).ToList();
                                if ((m_nCurrentTableNumber == 1) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(1, uc);
                                }
                                if ((m_nCurrentTableNumber == 2) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(3, uc);
                                }
                                if ((m_nCurrentTableNumber == 3) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(5, uc);
                                }
                                if ((m_nCurrentTableNumber == 4) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(7, uc);
                                }
                                if ((m_nCurrentTableNumber == 5) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(9, uc);
                                }
                                if ((m_nCurrentTableNumber == 6) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(11, uc);
                                }
                                if ((m_nCurrentTableNumber == 7) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(13, uc);
                                }
                                if ((m_nCurrentTableNumber == 8) && ((m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).HomePlayerId) || (m_nQualifyingPlayerForCurrentTableNumber == m_prevRound.TableHockeyGame.ElementAt(0).AwayPlayerId)))
                                {
                                    m_ucList.Add(15, uc);
                                }
                                Session["pgContestSummary.ucList"] = m_ucList;
                            }
                        }
                    }
                }
                Session["pgContestSummary.previousRound"] = m_round;
                if (m_round.isFirstRound)
                {
                    for (int iCount = 1; iCount < 15; iCount++)
                    {
                        uc.ucViewEndGameSeries m_uc;
                        if (m_ucList.ContainsKey(iCount))
                        {
                            m_uc = m_ucList[iCount];
                            PlaceHolder1.Controls.Add(m_uc);
                        }
                    }
                    string m_sEndGameHtml = GetSummary(divUcEndGamePlaceHolder);
                    Session["pgContestSummary.endGameHTML"] = m_sEndGameHtml;
                }
            }
        }