private void SaveEnteredGameResults() { //Get results for each end game uc and update TableHockeyGame table. PlaceHolder PlaceHolder1 = (PlaceHolder)Page.Controls[0].FindControl("form1").FindControl("mainContent").FindControl("resultsRepeater").Controls[1].FindControl("PlaceHolder1"); for (int jCount = 0; jCount < PlaceHolder1.Controls.Count; jCount++) { uc.ucEndGameSeries ucCurrentEndGameSeries = (uc.ucEndGameSeries)PlaceHolder1.Controls[jCount]; ucCurrentEndGameSeries.getUCGUI(); for (int iCount = 0; iCount < ucCurrentEndGameSeries.m_games.Count; iCount++) { int currentHomeScoreEntered = ucCurrentEndGameSeries.m_games[iCount].HomePlayerScore; int currentAwayScoreEntered = ucCurrentEndGameSeries.m_games[iCount].AwayPlayerScore; int m_nCurrentGameId = ucCurrentEndGameSeries.m_games[iCount].GameId; int m_nCurrentHomePlayerId = ucCurrentEndGameSeries.m_games[iCount].HomePlayerId; int m_nCurrentAwayPlayerId = ucCurrentEndGameSeries.m_games[iCount].AwayPlayerId; bool m_bHasSuddenDeath = ucCurrentEndGameSeries.m_games[iCount].hasSuddenDeath; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var querySingleGame = context.TableHockeyGame.First(g => g.GameId == m_nCurrentGameId); TableHockeyGame m_currentGame = (TableHockeyGame)querySingleGame; m_currentGame.HomePlayerScore = currentHomeScoreEntered; m_currentGame.AwayPlayerScore = currentAwayScoreEntered; m_currentGame.hasSuddenDeath = m_bHasSuddenDeath; m_currentGame.HomePlayerId = m_nCurrentHomePlayerId; m_currentGame.AwayPlayerId = m_nCurrentAwayPlayerId; context.SaveChanges(); } } } }
private bool displayEndGameRounds(int i_nContestId) { //Populate contest round uc. Get data for current round. bool isFinalRound = false; List <TableHockeyContestRound> m_rounds; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get any end game rounds for current contest. m_rounds = (from r in context.TableHockeyContestRound where ((r.ContestId == i_nContestId)) select r).OrderByDescending(p => p.RoundNumber).ToList(); //Get player count for current end game contest. var contestPlayersQuery = from p in context.TableHockeyPlayer join cp in context.TableHockeyContestPlayer on p.PlayerId equals cp.PlayerId where cp.ContestId == i_nContestId select new { p.PlayerId }; int m_nPlayerCount = contestPlayersQuery.ToList().Count(); //Get entered results from uc and update games for table number. Session["pgContestSummary.ucList"] = null; Session["pgContestSummary.previousRound"] = null; Session["pgContestSummary.m_nNumberOfRounds"] = m_rounds.Count; Session["pgContestSummary.m_nPlayerCount"] = m_nPlayerCount; this.ResultsRepeater.DataSource = m_rounds; this.ResultsRepeater.DataBind(); return(isFinalRound); } }
protected void ButtonAddSelectedPlayersToContest_Click(object sender, EventArgs e) { Dictionary <int, int> m_selectedPlayerIDs = GetCheckedPlayerIndexes(GridViewAvailablePlayers, "checkSelectPlayer"); if (Session["pgEditContestPlayers.m_nContestId"] != null) { m_nContestId = Convert.ToInt32(Session["pgEditContestPlayers.m_nContestId"]); } using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { foreach (int m_nPlayerId in m_selectedPlayerIDs.Values) { TableHockeyContestPlayer m_contestPlayer = new TableHockeyContestPlayer(); m_contestPlayer.ContestId = m_nContestId; m_contestPlayer.PlayerId = m_nPlayerId; m_contestPlayer.isDummyContestPlayer = false; context.TableHockeyContestPlayer.Add(m_contestPlayer); } context.SaveChanges(); } if (m_selectedPlayerIDs.Count > 0) { populateAvailablePlayers(m_nContestId); populateSelectedPlayers(m_nContestId); } }
private void Datashow() { List <TableHockeyContest> m_lstTableHockeyContest; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { DateTime m_dDateLimit = DateTime.Today.AddDays(-7); //TODO: Setting?! m_lstTableHockeyContest = (from c in context.TableHockeyContest where ((c.ContestDateClosed.Value.CompareTo(m_dDateLimit) > 0) && c.isPubliclyVisible) select c).ToList(); } List <TableHockeyContestViewModel> m_lstContestVm = new List <TableHockeyContestViewModel>(); foreach (TableHockeyContest m_contest in m_lstTableHockeyContest) { m_lstContestVm.Add(new TableHockeyContestViewModel(m_contest)); } if ((m_lstContestVm != null) && (m_lstContestVm.Count > 0)) { this.ucViewContests_public1.InitControl(m_lstContestVm); } else { this.divInfo.Visible = false; } }
//Generate contest rounds. private int calcNumberOfContestRounds(int i_nContestId) { //First, count the number of rounds to generate for particular contest. //If even amount of players n, and r repetitions, the number of rounds //will be r * (n - 1). TODO: KOLLA UPP!! //If odd amount of players n, and r repetitions, the number of rounds //will be r * n. using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get contest details. TableHockeyContest m_contest = context.TableHockeyContest.First(c => c.ContestId == i_nContestId); int m_nNumberOfRepetitions = m_contest.numberOfRounds; //Get players. var contestPlayersQuery = from p in context.TableHockeyPlayer join cp in context.TableHockeyContestPlayer on p.PlayerId equals cp.PlayerId where cp.ContestId == i_nContestId select new { p.PlayerId }; int m_nPlayerCount = contestPlayersQuery.ToList().Count(); //Determine number of rounds. int m_nNumberOfRounds = 0; if (!isOdd(m_nPlayerCount)) { m_nNumberOfRounds = m_nNumberOfRepetitions * (m_nPlayerCount - 1); } else { m_nNumberOfRounds = m_nNumberOfRepetitions * m_nPlayerCount; } return(m_nNumberOfRounds); } }
public void handleContestRounds(int i_nContestId, int i_nNumberOfRounds) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var roundsQuery = from p in context.TableHockeyContestRound where p.ContestId == i_nContestId select p; if (roundsQuery.ToList().Count() != i_nNumberOfRounds) { //Number of players or repetitions in current contest has changed, //or a new game had been created. //Drop any existing contest rounds and regenerate. if (roundsQuery.ToList().Count > 0) { foreach (TableHockeyContestRound m_round in (List <TableHockeyContestRound>)roundsQuery.ToList()) { foreach (TableHockeyGame m_game in m_round.TableHockeyGame.ToList()) { context.TableHockeyGame.Remove(m_game); } context.TableHockeyContestRound.Remove(m_round); } context.SaveChanges(); } TableHockeyContestHandler m_contestHandler = new TableHockeyContestHandler(); List <TableHockeyContestRound> m_lstTableHockeyContestRound = m_contestHandler.getTableHockeyContestRoundList(i_nContestId, i_nNumberOfRounds); foreach (TableHockeyContestRound m_round in m_lstTableHockeyContestRound) { context.TableHockeyContestRound.Add(m_round); } } context.SaveChanges(); } }
protected void ButtonStartContest_Click(object sender, EventArgs e) { //Redirect to contest start page. if (Session["pgEditContestPlayers.m_nContestId"] != null) { m_nContestId = Convert.ToInt32(Session["pgEditContestPlayers.m_nContestId"]); } using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { int m_nNumberOfPlayers = context.TableHockeyContestPlayer.Where(c => (c.PlayerId != -1) && (c.ContestId == m_nContestId)).Count(); //If odd number of players, add extra dummy player (if none exists, shouldn't happen). This is a temporary fix that may be altered in the future. 120507. if (PageUtility.isOdd(m_nNumberOfPlayers)) { TableHockeyContestPlayer m_existingDummyPlayer = context.TableHockeyContestPlayer.FirstOrDefault(c => (c.PlayerId == -1) && (c.ContestId == m_nContestId)); if (m_existingDummyPlayer == null) { TableHockeyContestPlayer m_dummyPlayer = new TableHockeyContestPlayer(); m_dummyPlayer.ContestId = m_nContestId; m_dummyPlayer.PlayerId = -1; m_dummyPlayer.isDummyContestPlayer = true; context.TableHockeyContestPlayer.Add(m_dummyPlayer); } context.SaveChanges(); } } Response.Redirect("~/pgEditContestTable.aspx?ContestId=" + m_nContestId); }
protected void ButtonRemoveSelectedPlayersFromContest_Click(object sender, EventArgs e) { Dictionary <int, int> m_selectedPlayerIDs = GetCheckedPlayerIndexes(GridViewSelectedPlayers, "checkSelectPlayer"); if (Session["pgEditContestPlayers.m_nContestId"] != null) { m_nContestId = Convert.ToInt32(Session["pgEditContestPlayers.m_nContestId"]); } using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { foreach (int m_nPlayerId in m_selectedPlayerIDs.Values) { if (isPlayerOKToRemoveFromContest(m_nPlayerId, m_nContestId)) { TableHockeyContestPlayer m_contestPlayer = context.TableHockeyContestPlayer.First(c => (c.PlayerId == m_nPlayerId) && (c.ContestId == m_nContestId)); context.TableHockeyContestPlayer.Remove(m_contestPlayer); } } context.SaveChanges(); } if (m_selectedPlayerIDs.Count > 0) { populateAvailablePlayers(m_nContestId); populateSelectedPlayers(m_nContestId); } }
protected void Page_Load(object sender, EventArgs e) { //Get contest id. if (!Page.IsPostBack) { m_nContestId = -1; m_sContestRoundPlaceholder = "Contest round [ROUND]"; //TODO: Config setting! if (!String.IsNullOrEmpty(Request.QueryString["ContestId"])) { m_nContestId = Convert.ToInt32(Request.QueryString["ContestId"]); Session["pgEditContestTable.m_nContestId"] = m_nContestId; //Get current contest using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { m_currentContest = context.TableHockeyContest.FirstOrDefault(i => i.ContestId == m_nContestId); } Session["pgEditContestTable.m_currentContest"] = m_currentContest; //Find or regenerate contest rounds. handleContestRounds(m_nContestId); //Find or regenerate contest games. handleContestGames(m_currentContest); if (Session["pgEditContestTable.m_nCurrentRoundNumber"] != null) { m_nCurrentRoundNumber = (int)Session["pgEditContestTable.m_nCurrentRoundNumber"]; } else { m_nCurrentRoundNumber = 1; } this.LabelContestHeader.Text = m_sContestRoundPlaceholder.Replace("[ROUND]", Convert.ToString(m_nCurrentRoundNumber)); //Init table user control bool isFinalRound = displayCurrentRound(m_nContestId, m_nCurrentRoundNumber); int m_nNumberOfEndGamePlayers = (int)((m_currentContest.NumberOfPlayersToNextRound != null) ? m_currentContest.NumberOfPlayersToNextRound : 100); TableViewModel m_tableViewModel = new TableViewModel(m_nContestId, m_nCurrentRoundNumber); this.ucContestTable1.InitControl(m_tableViewModel.m_tableRows, false, m_nNumberOfEndGamePlayers); Session["pgEditContestTable.m_nCurrentRoundNumber"] = m_nCurrentRoundNumber; } else { Response.Redirect("~/pgMain.aspx"); } } else { if (Session["pgEditContestTable.m_nCurrentRoundNumber"] != null) { m_nCurrentRoundNumber = (int)Session["pgEditContestTable.m_nCurrentRoundNumber"]; } else { m_nCurrentRoundNumber = 1; } if (Session["pgEditContestTable.m_nContestId"] != null) { m_nContestId = (int)Session["pgEditContestTable.m_nContestId"]; } } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { m_ContestContext = new TableHockeyContest(); //Get contest details for existing contest or create new. Init contest uc int m_nContestId = -1; if (!String.IsNullOrEmpty(Request.QueryString["ContestId"])) //TODO: Integer validation. { //Get existing contest and init uc. m_nContestId = Convert.ToInt32(Request.QueryString["ContestId"]); MembershipUser user = Membership.GetUser(m_sUser.Trim()); if (user != null) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { try { var querySingleContest = (from c in context.TableHockeyContest where c.OwnerUserId == (Guid)user.ProviderUserKey && c.ContestId == m_nContestId select c).FirstOrDefault(); if (querySingleContest.EndGameForContestId != null) { //It's an end game for another contest, redirect to end game page edit. Response.Redirect("~/pgEditContestTableEndGame.aspx?ContestId=" + Convert.ToString(m_nContestId), false); } if (querySingleContest != null) { this.ucEditTableHockeyContest1.InitControl((TableHockeyContest)querySingleContest); } else { this.ucEditTableHockeyContest1.InitControl(null); } } catch (Exception ex) { Response.Redirect("~/pgEditContest.aspx"); } } divAddPlayers.Visible = true; } } else { //Init uc for new contest divAddPlayers.Visible = false; this.ucEditTableHockeyContest1.InitControl(null); } } else { } }
private void setContestHeader(int i_nContestId) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { TableHockeyContest m_contest = context.TableHockeyContest.First(c => c.ContestId == i_nContestId); ViewModels.ContestViewModel m_contestViewModel = new ViewModels.ContestViewModel(m_contest); LabelContestHeader.Text = m_contestViewModel.ContestHeader; LabelContestDescription.Text = m_contestViewModel.ContestDescription; } }
private bool isPlayerOKToRemoveFromContest(int i_nPlayerId, int i_nContestId) { //Check for contest games for player. Also check that contest is still open. using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { TableHockeyGame m_tableHockeyGame = context.TableHockeyGame.FirstOrDefault(c => ((c.HomePlayerId == i_nPlayerId) || (c.AwayPlayerId == i_nPlayerId)) && (c.ContestId == m_nContestId)); TableHockeyContest m_tableHockeyContest = context.TableHockeyContest.First(c => c.ContestId == i_nContestId); return((m_tableHockeyGame == null) && (m_tableHockeyContest.ContestDateClosed.Equals(DateTime.Parse("1900-01-01")))); } }
public TableViewModel(int i_nContestId, int i_nRoundNumber) { m_tableRows = new List <TableRowPlayerViewModel>(); using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var contestPlayersQuery = from p in context.TableHockeyPlayer join c in context.TableHockeyClub on p.ClubId equals c.ClubId join cp in context.TableHockeyContestPlayer on p.PlayerId equals cp.PlayerId where cp.ContestId == i_nContestId select new { p.PlayerId, p.FirstName, p.LastName, p.BirthDate, c.ClubName, p.PlayerBinary }; List <PlayerViewModel> m_lstPlayerViewModel = new List <PlayerViewModel>(); for (int i = 0; i < contestPlayersQuery.Count(); i++) { PlayerViewModel m_model = new PlayerViewModel(); m_model.BirthDate = (DateTime)contestPlayersQuery.ToList().ElementAt(i).BirthDate; m_model.ClubName = contestPlayersQuery.ToList().ElementAt(i).ClubName; m_model.FirstName = contestPlayersQuery.ToList().ElementAt(i).FirstName; m_model.LastName = contestPlayersQuery.ToList().ElementAt(i).LastName; m_model.PlayerBinary = contestPlayersQuery.ToList().ElementAt(i).PlayerBinary; m_model.PlayerId = contestPlayersQuery.ToList().ElementAt(i).PlayerId; m_lstPlayerViewModel.Add(m_model); } var querySingleContest = context.TableHockeyContest.First(c => c.ContestId == i_nContestId); foreach (PlayerViewModel m_currentPlayer in m_lstPlayerViewModel) { List <TableHockeyGame> m_lstCurrentPlayerGames; var contestPlayerRoundStandingsQuery = from thg in context.TableHockeyGame join thcr in context.TableHockeyContestRound on thg.TableHockeyContestRoundId equals thcr.TableHockeyContestRoundId where ((thg.ContestId == i_nContestId) && ((thg.HomePlayerId == m_currentPlayer.PlayerId) || (thg.AwayPlayerId == m_currentPlayer.PlayerId)) && (thcr.RoundNumber <= i_nRoundNumber)) select thg; m_lstCurrentPlayerGames = contestPlayerRoundStandingsQuery.ToList(); m_tableRows.Add(new TableRowPlayerViewModel(m_lstCurrentPlayerGames, m_currentPlayer, (TableHockeyContest)querySingleContest)); } //Sort table and update standings. int iCount = 1; m_tableRows.Sort(); foreach (TableRowPlayerViewModel m_tablevm in m_tableRows) { if (m_tablevm.PlayerId > 0) { m_tablevm.PlayerStanding = iCount; iCount++; } } } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //Get Club details using (var clubcontext = new TableHockeyData.UHSSWEB_DEVEntities()) { var queryAllClubs = clubcontext.TableHockeyClub; //Get Player details for existing Player or create new. Init Player uc int m_nPlayerId = -1; if (!String.IsNullOrEmpty(Request.QueryString["PlayerId"])) { //Get existing Player and init uc. m_nPlayerId = Convert.ToInt32(Request.QueryString["PlayerId"]); MembershipUser user = Membership.GetUser(m_sUser.Trim()); if (user != null) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { try { var querySinglePlayer = (from c in context.TableHockeyPlayer where c.RegisteredByUserId == (Guid)user.ProviderUserKey && c.PlayerId == m_nPlayerId select c).FirstOrDefault(); if (querySinglePlayer != null) { this.ucEditTableHockeyPlayer1.InitControl((TableHockeyPlayer)querySinglePlayer, queryAllClubs.ToList()); this.ButtonDeletePlayer.Visible = true; } } catch (Exception ex) { Response.Redirect("~/pgEditPlayer.aspx"); } } } } else { //Init uc for new Player this.ucEditTableHockeyPlayer1.InitControl(null, queryAllClubs.ToList()); this.ButtonDeletePlayer.Visible = false; } } } else { } }
private void populateAvailablePlayers(int i_nContestId) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var availablePlayersQuery = from p in context.TableHockeyPlayer join c in context.TableHockeyClub on p.ClubId equals c.ClubId where !(from cp in context.TableHockeyContestPlayer where cp.ContestId == i_nContestId select cp.PlayerId).Contains(p.PlayerId) select new { p.PlayerId, p.FirstName, p.LastName, p.BirthDate, c.ClubName, p.PlayerBinary, p.isHistoric }; this.GridViewAvailablePlayers.DataSource = availablePlayersQuery.ToList().Where(p => p.PlayerId >= 0).Where(p => p.isHistoric != 1); this.GridViewAvailablePlayers.DataBind(); } }
private void populateSelectedPlayers(int i_nContestId) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var contestPlayersQuery = from p in context.TableHockeyPlayer join c in context.TableHockeyClub on p.ClubId equals c.ClubId join cp in context.TableHockeyContestPlayer on p.PlayerId equals cp.PlayerId where (cp.ContestId == i_nContestId) select new { p.PlayerId, p.FirstName, p.LastName, p.BirthDate, c.ClubName, p.PlayerBinary }; this.GridViewSelectedPlayers.DataSource = contestPlayersQuery.ToList().Where(p => p.PlayerId >= 0); this.GridViewSelectedPlayers.DataBind(); divStartContest.Visible = (GridViewSelectedPlayers.Rows.Count >= 2); } }
private void handleContestGames(TableHockeyContest i_currentContest) { int i_nContestId = i_currentContest.ContestId; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get contest games, if any. var gamesQuery = from g in context.TableHockeyGame where g.ContestId == i_nContestId select g; //Get contest players. var playersQuery = from p in context.TableHockeyContestPlayer where p.ContestId == i_nContestId select p; //Get contest games/players. List <TableHockeyGame> m_games = (List <TableHockeyGame>)gamesQuery.ToList(); List <TableHockeyContestPlayer> m_players = (List <TableHockeyContestPlayer>)playersQuery.ToList(); int m_nCorrectNumberOfGames = calcCorrectNumberOfEndGames(m_players); initEndGameQueueHandler(m_players, i_currentContest.numberOfRounds); //If we are to add new end games... List <TableHockeyGame> m_gamesForCurrentRound = getTableHockeyEndGameListForCurrentRound(i_currentContest, m_players); if (gamesQuery.ToList().Count < m_nCorrectNumberOfGames) { if (m_games.Where(g => g.TableHockeyContestRoundId == m_gamesForCurrentRound[0].TableHockeyContestRoundId).FirstOrDefault() == null) { m_games.AddRange(m_gamesForCurrentRound); //if (gamesQuery.ToList().Count > 0) //{ // //Game count mismatch. Remove games and re-generate game list. // foreach (TableHockeyGame m_game in m_games) // { // context.TableHockeyGame.Remove(m_game); // } // context.SaveChanges(); //} foreach (TableHockeyGame m_game in m_games.Where(g => g.GameId == 0)) { context.TableHockeyGame.Add(m_game); } } } context.SaveChanges(); } }
protected void ButtonDeletePlayer_Click(object sender, EventArgs e) { if (this.ucEditTableHockeyPlayer1.m_currentPlayer.PlayerId != -1) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Set existing Player to historic. TableHockeyPlayer m_currentPlayerSource = this.ucEditTableHockeyPlayer1.m_currentPlayer; m_currentPlayerSource.isHistoric = 1; TableHockeyPlayer m_currentPlayerDest = context.TableHockeyPlayer.FirstOrDefault(i => i.PlayerId == this.ucEditTableHockeyPlayer1.m_currentPlayer.PlayerId); Mapper.Map(m_currentPlayerSource, m_currentPlayerDest); context.SaveChanges(); } Response.Redirect("~/pgMain.aspx"); } }
protected void ButtonSaveContest_Click(object sender, EventArgs e) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { if (this.ucEditTableHockeyContest1.m_currentContest.ContestId == -1) { //New contest context.TableHockeyContest.Add(this.ucEditTableHockeyContest1.m_currentContest); } else { //Edit existing contest TableHockeyContest m_currentContest = context.TableHockeyContest.FirstOrDefault(i => i.ContestId == this.ucEditTableHockeyContest1.m_currentContest.ContestId); //Mapper.Map(this.ucEditTableHockeyContest1.m_currentContest, m_currentContest); m_currentContest.ContestBinary = this.ucEditTableHockeyContest1.m_currentContest.ContestBinary; m_currentContest.ContestDateClosed = this.ucEditTableHockeyContest1.m_currentContest.ContestDateClosed; m_currentContest.ContestDateOpened = this.ucEditTableHockeyContest1.m_currentContest.ContestDateOpened; m_currentContest.ContestDescription = this.ucEditTableHockeyContest1.m_currentContest.ContestDescription; m_currentContest.ContestLocation = this.ucEditTableHockeyContest1.m_currentContest.ContestLocation; m_currentContest.ContestName = this.ucEditTableHockeyContest1.m_currentContest.ContestName; m_currentContest.GameLengthMinutes = this.ucEditTableHockeyContest1.m_currentContest.GameLengthMinutes; m_currentContest.isFinalGameContest = this.ucEditTableHockeyContest1.m_currentContest.isFinalGameContest; m_currentContest.isGoalDifferenceRanked = this.ucEditTableHockeyContest1.m_currentContest.isGoalDifferenceRanked; m_currentContest.NumberOfPlayersToNextRound = this.ucEditTableHockeyContest1.m_currentContest.NumberOfPlayersToNextRound; m_currentContest.numberOfRounds = this.ucEditTableHockeyContest1.m_currentContest.numberOfRounds; m_currentContest.PointsLostGame = this.ucEditTableHockeyContest1.m_currentContest.PointsLostGame; m_currentContest.PointsTiedGame = this.ucEditTableHockeyContest1.m_currentContest.PointsTiedGame; m_currentContest.PointsWinningGame = this.ucEditTableHockeyContest1.m_currentContest.PointsWinningGame; //Also update closing date for any linked end game contest! TableHockeyContest m_currentEndGameContest = context.TableHockeyContest.FirstOrDefault(i => i.EndGameForContestId == this.ucEditTableHockeyContest1.m_currentContest.ContestId); if (m_currentEndGameContest != null) { m_currentEndGameContest.ContestDateClosed = this.ucEditTableHockeyContest1.m_currentContest.ContestDateClosed; } } context.SaveChanges(); Response.Redirect("~/pgMain.aspx"); } //List<string> list = new List<string>(); //list.Add("test"); //list.Where(p => p.StartsWith("t")).ToList(); //var test = from f in list // where f.StartsWith("t") // select f; }
private void displayRounds(int i_nContestId) { List <TableHockeyContestRound> m_rounds; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get any end game rounds for current contest. m_rounds = (from r in context.TableHockeyContestRound where ((r.ContestId == i_nContestId)) select r).OrderBy(p => p.RoundNumber).ToList(); //Get entered results from uc and update games for table number. Session["pgContestSummary.ucRoundList"] = null; this.RoundRepeater.DataSource = m_rounds; this.RoundRepeater.DataBind(); } }
private bool displayCurrentRound(int i_nContestId, int i_nCurrentRoundNumber) { //Populate contest round uc. Get data for current round. bool isFinalRound = false; List <TableHockeyContestRound> m_rounds; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { if (Session["pgEditContestTableEndGame.m_rounds"] == null) { m_rounds = (from r in context.TableHockeyContestRound where ((r.ContestId == i_nContestId) && (r.RoundNumber == i_nCurrentRoundNumber)) select r).ToList(); Session["pgEditContestTableEndGame.m_rounds"] = m_rounds; } else { m_rounds = (List <TableHockeyContestRound>)Session["pgEditContestTableEndGame.m_rounds"]; } //Get entered results from uc and update games for table number. if (Session["ucEndGameSeries.m_round"] != null) { TableHockeyContestRound m_enteredRound = (TableHockeyContestRound)Session["ucEndGameSeries.m_round"]; int m_nEnteredTableNumber = m_enteredRound.TableHockeyGame.FirstOrDefault().TableNumber; var m_gamesOnCurrentTable = m_enteredRound.TableHockeyGame.Where(g => g.TableNumber == m_nEnteredTableNumber); Mapper.Map(m_gamesOnCurrentTable, m_rounds[0].TableHockeyGame.Where(g => g.TableNumber == m_nEnteredTableNumber)); Session["ucEndGameSeries.m_round"] = m_rounds[0]; } this.ResultsRepeater.DataSource = m_rounds; this.ResultsRepeater.DataBind(); this.divPreviousRound.Visible = (!m_rounds[0].isFirstRound); isFinalRound = m_rounds[0].isFinalRound; this.divNextRound.Visible = (!isFinalRound); this.divSave.Visible = isFinalRound; m_sContestRoundPlaceholder = "Contest round [ROUND]"; //TODO: Config setting! this.LabelContestHeader.Text = m_sContestRoundPlaceholder.Replace("[ROUND]", Convert.ToString(m_nCurrentRoundNumber)); return(isFinalRound); } }
private void handleContestGames(TableHockeyContest i_currentContest) { int i_nContestId = i_currentContest.ContestId; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get contest games, if any. var gamesQuery = from g in context.TableHockeyGame where g.ContestId == i_nContestId select g; //Get contest players. var playersQuery = from p in context.TableHockeyContestPlayer where p.ContestId == i_nContestId select p; //Get contest games/players. List <TableHockeyGame> m_games = (List <TableHockeyGame>)gamesQuery.ToList(); List <TableHockeyContestPlayer> m_players = (List <TableHockeyContestPlayer>)playersQuery.ToList(); int m_nCorrectNumberOfUniqueGames = Convert.ToInt32(0.5 * i_currentContest.numberOfRounds * m_players.Count * (m_players.Count - 1)); if (gamesQuery.ToList().Count != m_nCorrectNumberOfUniqueGames) { if (gamesQuery.ToList().Count > 0) { //Game count mismatch. Remove games and re-generate game list. foreach (TableHockeyGame m_game in m_games) { context.TableHockeyGame.Remove(m_game); } context.SaveChanges(); } //Generate game list for entire contest. m_games = getTableHockeyGameList(i_currentContest, m_players); foreach (TableHockeyGame m_game in m_games) { context.TableHockeyGame.Add(m_game); } } context.SaveChanges(); } }
private void SaveEnteredGameResults() { //Get results for each row and update TableHockeyGame table. this.ucContestRound1.getUCGUI(); for (int iCount = 0; iCount < this.ucContestRound1.m_games.Count; iCount++) { int currentHomeScoreEntered = ucContestRound1.m_games[iCount].HomePlayerScore; int currentAwayScoreEntered = ucContestRound1.m_games[iCount].AwayPlayerScore; int m_nCurrentGameId = ucContestRound1.m_games[iCount].GameId; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var querySingleGame = context.TableHockeyGame.First(g => g.GameId == m_nCurrentGameId); TableHockeyGame m_currentGame = (TableHockeyGame)querySingleGame; m_currentGame.HomePlayerScore = currentHomeScoreEntered; m_currentGame.AwayPlayerScore = currentAwayScoreEntered; context.SaveChanges(); } } }
private bool displayCurrentRound(int i_nContestId, int i_nCurrentRoundNumber) { //Populate contest round uc. Get data for current round. bool isFinalRound = false; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { TableHockeyContestRound m_round = context.TableHockeyContestRound.FirstOrDefault(r => (r.ContestId == i_nContestId) && (r.RoundNumber == i_nCurrentRoundNumber)); this.ucContestRound1.InitControl(m_round); this.divPreviousRound.Visible = (!m_round.isFirstRound); isFinalRound = m_round.isFinalRound; this.divNextRound.Visible = (!isFinalRound); this.divSave.Visible = isFinalRound; this.divEndGame.Visible = isFinalRound; m_sContestRoundPlaceholder = "Contest round [ROUND]"; //TODO: Config setting! this.LabelContestHeader.Text = m_sContestRoundPlaceholder.Replace("[ROUND]", Convert.ToString(m_nCurrentRoundNumber)); } return(isFinalRound); }
private void DataShowPlayer(int i_nContestId, int i_nPlayerId, DropDownList i_ddl) { //Get players for current end game contest. using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get players. var contestPlayersQuery = from p in context.TableHockeyPlayer join cp in context.TableHockeyContestPlayer on p.PlayerId equals cp.PlayerId where cp.ContestId == i_nContestId select new { Value = p.PlayerId, Text = p.FirstName + " " + p.LastName }; i_ddl.DataSource = contestPlayersQuery.ToList(); i_ddl.DataValueField = "Value"; i_ddl.DataTextField = "Text"; i_ddl.DataBind(); } i_ddl.SelectedValue = Convert.ToString(i_nPlayerId); }
protected void ButtonSavePlayer_Click(object sender, EventArgs e) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { if (this.ucEditTableHockeyPlayer1.m_currentPlayer.PlayerId == -1) { //New Player TableHockeyPlayer m_newPlayer = this.ucEditTableHockeyPlayer1.m_currentPlayer; m_newPlayer.RegisteredByUserId = (Guid)Membership.GetUser(m_sUser.Trim()).ProviderUserKey; context.TableHockeyPlayer.Add(m_newPlayer); } else { //Edit existing Player TableHockeyPlayer m_currentPlayer = context.TableHockeyPlayer.FirstOrDefault(i => i.PlayerId == this.ucEditTableHockeyPlayer1.m_currentPlayer.PlayerId); Mapper.Map(this.ucEditTableHockeyPlayer1.m_currentPlayer, m_currentPlayer); } context.SaveChanges(); Response.Redirect("~/pgMain.aspx"); } }
private List <TableHockeyGame> getTableHockeyEndGameListForCurrentRound(TableHockeyContest i_contest, List <TableHockeyContestPlayer> i_contestPlayers) { //Get game list for end game. Always add full number of possible games per round. If a match series ends prematurely, games are returned as "scoreless". using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var roundsQuery = from r in context.TableHockeyContestRound where r.ContestId == i_contest.ContestId select r; List <TableHockeyContestRound> m_lstTableHockeyRounds = (List <TableHockeyContestRound>)roundsQuery.ToList(); List <TableHockeyGame> m_lstTableHockeyGames = new List <TableHockeyGame>(); int m_nGamesPerRound = i_contest.numberOfRounds; DateTime m_dStartDate = DateTime.Now; //Create game list for current round. TableHockeyContestRound m_round = m_lstTableHockeyRounds[m_queueHandler.m_nCurrentRoundNumber - 1]; for (int k = 0; k < m_queueHandler.m_dictGamePlayersPerRound[m_queueHandler.m_nCurrentRoundNumber - 1].Count; k += 2) { for (int i = 0; i < m_nGamesPerRound; i++) { TableHockeyGame m_currentGame = new TableHockeyGame(); m_currentGame.ContestId = i_contest.ContestId; m_currentGame.GameStartDate = m_dStartDate; m_currentGame.isFinalGame = i_contest.isFinalGameContest; m_currentGame.TableNumber = (int)(k / 2.0) + 1; m_currentGame.TableHockeyContestRoundId = m_round.TableHockeyContestRoundId; m_currentGame.HomePlayerId = m_queueHandler.m_dictGamePlayersPerRound[m_queueHandler.m_nCurrentRoundNumber - 1].ElementAt(k).Key; m_currentGame.AwayPlayerId = m_queueHandler.m_dictGamePlayersPerRound[m_queueHandler.m_nCurrentRoundNumber - 1].ElementAt(k + 1).Key; m_currentGame.IdlePlayerId = -1; m_lstTableHockeyGames.Add(m_currentGame); } } return(m_lstTableHockeyGames); } }
//private int getLowerPlayerCountRotationLimit() //{ // using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) // { // var querySetting = context.Settings.First(s => s.SettingDescription == "INT_NUMBER_OF_PLAYERS_ROTATION_LOWER_LIMIT"); // return (int)querySetting.ValueInt; // } //} private List <TableHockeyGame> getTableHockeyGameList(TableHockeyContest i_contest, List <TableHockeyContestPlayer> i_contestPlayers) { using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { var roundsQuery = from r in context.TableHockeyContestRound where r.ContestId == i_contest.ContestId select r; List <TableHockeyContestRound> m_lstTableHockeyRounds = (List <TableHockeyContestRound>)roundsQuery.ToList(); List <TableHockeyGame> m_lstTableHockeyGames = new List <TableHockeyGame>(); int m_nGamesPerRound = getNumberOfGamesPerRound(i_contestPlayers.Count); DateTime m_dStartDate = DateTime.Now; PlayerViewModelList m_lstPlayerViewModel = new PlayerViewModelList(i_contestPlayers); TableHockeyQueueHandler2 m_queueHandler = new TableHockeyQueueHandler2(m_lstPlayerViewModel.m_lstContestPlayerId, m_nGamesPerRound); foreach (TableHockeyContestRound m_round in m_lstTableHockeyRounds) { for (int i = 0; i < m_nGamesPerRound; i++) { TableHockeyGame m_currentGame = new TableHockeyGame(); m_currentGame.ContestId = i_contest.ContestId; m_currentGame.GameStartDate = m_dStartDate; m_currentGame.isFinalGame = i_contest.isFinalGameContest; m_currentGame.TableNumber = i + 1; m_currentGame.TableHockeyContestRoundId = m_round.TableHockeyContestRoundId; m_currentGame.HomePlayerId = m_queueHandler.m_lstCurrentHomePlayerId[i]; m_currentGame.AwayPlayerId = m_queueHandler.m_lstCurrentAwayPlayerId[i]; m_currentGame.IdlePlayerId = m_queueHandler.getIdlePlayer(); m_lstTableHockeyGames.Add(m_currentGame); } m_queueHandler.nextRound(); } return(m_lstTableHockeyGames); } }
//Generate contest rounds. private int calcNumberOfContestRounds(int i_nContestId) { //First, count the number of rounds to generate for end game. //This depends on the number of participating players. int m_nPlayerCount = -1; using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { //Get players. var contestPlayersQuery = from p in context.TableHockeyPlayer join cp in context.TableHockeyContestPlayer on p.PlayerId equals cp.PlayerId where cp.ContestId == i_nContestId select new { p.PlayerId }; m_nPlayerCount = contestPlayersQuery.ToList().Count(); } //Determine and return number of rounds. If uneven number of players with respect to even end game pairs, add elimination rund. int m_nHighestEvenPairs = PageUtility.highestExponentLessThanOrEqualToSum(2, m_nPlayerCount); int m_nNumberOfEvenRounds = Convert.ToInt32(0.5 * m_nHighestEvenPairs) - 1; return(((m_nPlayerCount - m_nHighestEvenPairs) == 0) ? m_nNumberOfEvenRounds : 1 + m_nNumberOfEvenRounds); }
protected void Page_Load(object sender, EventArgs e) { //Get contest id. if (!Page.IsPostBack) { m_nContestId = -1; m_sContestRoundPlaceholder = "Contest round [ROUND]"; //TODO: Config setting! if (!String.IsNullOrEmpty(Request.QueryString["ContestId"])) { m_nContestId = Convert.ToInt32(Request.QueryString["ContestId"]); Session["pgEditContestTableEndGame.m_nContestId"] = m_nContestId; //Get current contest using (var context = new TableHockeyData.UHSSWEB_DEVEntities()) { m_currentContest = context.TableHockeyContest.FirstOrDefault(i => i.ContestId == m_nContestId); } if (m_currentContest.EndGameForContestId == null) { Response.Redirect("~/pgMain.aspx"); } Session["pgEditContestTableEndGame.m_currentContest"] = m_currentContest; //Find or regenerate contest end game rounds. Just generate 1 + ([number of players] - 1) / 2 rounds. Session["pgEditContestTable.m_currentContest"] = m_currentContest; //?? if (Session["pgEditContestTableEndGame.m_nCurrentRoundNumber"] != null) { m_nCurrentRoundNumber = (int)Session["pgEditContestTableEndGame.m_nCurrentRoundNumber"]; } else { m_nCurrentRoundNumber = 1; } //Find or regenerate contest rounds. handleContestRounds(m_nContestId); //Find or regenerate contest end games. handleContestGames(m_currentContest); //Init end game ucs this.LabelContestHeader.Text = m_sContestRoundPlaceholder.Replace("[ROUND]", Convert.ToString(m_nCurrentRoundNumber)); //Init table user control bool isFinalRound = displayCurrentRound(m_nContestId, m_nCurrentRoundNumber); } else { Response.Redirect("~/pgMain.aspx"); } Session["ucEndGameSeries.hasChanges"] = false; } else { if (Session["pgEditContestTableEndGame.m_nCurrentRoundNumber"] != null) { m_nCurrentRoundNumber = (int)Session["pgEditContestTableEndGame.m_nCurrentRoundNumber"]; } else { m_nCurrentRoundNumber = 1; } if (Session["pgEditContestTableEndGame.m_nContestId"] != null) { m_nContestId = (int)Session["pgEditContestTableEndGame.m_nContestId"]; } bool isFinalRound = displayCurrentRound(m_nContestId, m_nCurrentRoundNumber); } }