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; } } }