Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 4
0
        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;
            }
        }
Exemplo n.º 5
0
        //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);
            }
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 9
0
        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"];
                }
            }
        }
Exemplo n.º 10
0
        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"))));
            }
        }
Exemplo n.º 13
0
        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++;
                    }
                }
            }
        }
Exemplo n.º 14
0
 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);
            }
        }
Exemplo n.º 17
0
        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();
            }
        }
Exemplo n.º 18
0
 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");
     }
 }
Exemplo n.º 19
0
        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;
        }
Exemplo n.º 20
0
        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();
            }
        }
Exemplo n.º 21
0
        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);
            }
        }
Exemplo n.º 22
0
        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();
            }
        }
Exemplo n.º 23
0
 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();
         }
     }
 }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
 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");
     }
 }
Exemplo n.º 27
0
        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);
            }
        }
Exemplo n.º 28
0
        //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);
            }
        }
Exemplo n.º 29
0
        //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);
        }
Exemplo n.º 30
0
        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);
            }
        }