public ActionResult Create([Bind(Include = "PlayerGameStatID,GameID,PlayerID,ShotsOnGoal,CreateDate")] PlayerGameStat playerGameStat)
        {
            if (ModelState.IsValid)
            {
                playerGameStat.CreateDate = DateTime.Now;
                bool hasGameAndPlayer = false;
                foreach (PlayerGameStat stat in db.PlayerGameStats)
                {
                    if ((stat.GameID == playerGameStat.GameID) && (stat.PlayerID == playerGameStat.PlayerID))
                    {
                        hasGameAndPlayer = true;
                    }
                }

                if (!hasGameAndPlayer)
                {
                    db.PlayerGameStats.Add(playerGameStat);
                    db.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }

            ViewBag.GameID   = new SelectList(db.Games, "GameID", "Name", playerGameStat.GameID);
            ViewBag.PlayerID = new SelectList(db.Players, "PlayerID", "Name", playerGameStat.PlayerID);
            return(View(playerGameStat));
        }
示例#2
0
 public void AddStat(PlayerGameStat stat, BaseballGameState state = null)
 {
     if (UserHelper.HasUpdatePermissions())
     {
         stat.States = new List <int>();
         if (state != null)
         {
             if (state.PlayerOnFirst != null)
             {
                 stat.States.Add((int)StatStates.First);
             }
             if (state.PlayerOnSecond != null)
             {
                 stat.States.Add((int)StatStates.Second);
             }
             if (state.PlayerOnThird != null)
             {
                 stat.States.Add((int)StatStates.Third);
             }
             if (state.NumberOfOuts == 1)
             {
                 stat.States.Add((int)StatStates.Out1);
             }
             if (state.NumberOfOuts == 2)
             {
                 stat.States.Add((int)StatStates.Out2);
             }
         }
         var gameStat = ConvertObjects.ConvertType(stat);
         GameDataProvider.GetInstance().AddStat(gameStat);
     }
 }
        public ActionResult DeleteConfirmed(int id)
        {
            PlayerGameStat playerGameStat = db.PlayerGameStats.Find(id);

            db.PlayerGameStats.Remove(playerGameStat);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#4
0
 public static DTOStat ConvertType(PlayerGameStat o)
 {
     return(new DTOStat()
     {
         GameID = o.GameID,
         PlayerID = o.PlayerID,
         StatTypeID = o.StatTypeID,
         Value = o.Value,
         TeamID = o.TeamID,
         GroupID = o.GroupID,
         States = o.States,
         Override = o.Override
     });
 }
        // GET: PlayerGameStats/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PlayerGameStat playerGameStat = db.PlayerGameStats.Find(id);

            if (playerGameStat == null)
            {
                return(HttpNotFound());
            }
            return(View(playerGameStat));
        }
        // GET: PlayerGameStats/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PlayerGameStat playerGameStat = db.PlayerGameStats.Find(id);

            if (playerGameStat == null)
            {
                return(HttpNotFound());
            }
            ViewBag.GameID   = new SelectList(db.Games, "GameID", "Name", playerGameStat.GameID);
            ViewBag.PlayerID = new SelectList(db.Players, "PlayerID", "Name", playerGameStat.PlayerID);
            return(View(playerGameStat));
        }
示例#7
0
        public AtBatStates GetGameStates(PlayerGameStat stat, bool isLatestGroup, DataCache dataCache = null)
        {
            AtBatStates states  = new AtBatStates();
            var         players = PlayersService.GetInstance().GetPlayers(stat.TeamID, gameID: stat.GameID, dataCache: dataCache);
            var         player  = players.First(p => p.ID == stat.PlayerID);

            states.OriginalState        = GetExistingGameState(gameID: stat.GameID, leagueID: stat.LeagueID, dataCache: dataCache);
            states.OriginalState.GameID = stat.GameID;
            if (states.OriginalState.Inning == 0)
            {
                states.OriginalState.Inning      = 1;
                states.OriginalState.TopOfInning = true;
            }
            BaseballGameState newState = new BaseballGameState()
            {
                GameID        = states.OriginalState.GameID,
                NumberOfOuts  = states.OriginalState.NumberOfOuts,
                Inning        = states.OriginalState.Inning,
                TopOfInning   = states.OriginalState.TopOfInning,
                RunnersScored = new List <PlayerBase>(),
                RunnersOut    = new List <PlayerBase>(),
                Team1Player   = states.OriginalState.TopOfInning ? new PlayerBase()
                {
                    ID = stat.PlayerID
                } : states.OriginalState.Team1Player,
                Team2Player = !states.OriginalState.TopOfInning ? new PlayerBase()
                {
                    ID = stat.PlayerID
                } : states.OriginalState.Team2Player,
            };

            bool changeState         = true;
            bool nextAtBat           = false;
            bool potentialAdjustment = false;

            if (stat.Value == -1 || !isLatestGroup)
            {
                newState.PlayerOnFirst  = states.OriginalState.PlayerOnFirst;
                newState.PlayerOnSecond = states.OriginalState.PlayerOnSecond;
                newState.PlayerOnThird  = states.OriginalState.PlayerOnThird;
                changeState             = false;
                potentialAdjustment     = false;
            }
            else
            {
                if (isLatestGroup)
                {
                    if (stat.StatTypeID == (int)CalculatedStatTypes.Single || stat.StatTypeID == (int)CalculatedStatTypes.FC)
                    {
                        newState.PlayerOnFirst = player;
                        if (states.OriginalState.PlayerOnThird != null)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnThird);
                        }
                        if (states.OriginalState.PlayerOnSecond != null)
                        {
                            potentialAdjustment    = true;
                            newState.PlayerOnThird = states.OriginalState.PlayerOnSecond;
                        }
                        if (states.OriginalState.PlayerOnFirst != null)
                        {
                            potentialAdjustment     = true;
                            newState.PlayerOnSecond = states.OriginalState.PlayerOnFirst;
                        }
                        nextAtBat = true;
                    }
                    else if (stat.StatTypeID == (int)CalculatedStatTypes.Double)
                    {
                        newState.PlayerOnSecond = player;
                        if (states.OriginalState.PlayerOnThird != null)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnThird);
                        }
                        if (states.OriginalState.PlayerOnSecond != null)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnSecond);
                        }
                        if (states.OriginalState.PlayerOnFirst != null)
                        {
                            potentialAdjustment    = true;
                            newState.PlayerOnThird = states.OriginalState.PlayerOnFirst;
                        }
                        nextAtBat = true;
                    }
                    else if (stat.StatTypeID == (int)CalculatedStatTypes.Triple)
                    {
                        newState.PlayerOnThird = player;
                        if (states.OriginalState.PlayerOnFirst != null)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnFirst);
                        }
                        if (states.OriginalState.PlayerOnSecond != null)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnSecond);
                        }
                        if (states.OriginalState.PlayerOnThird != null)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnThird);
                        }
                        nextAtBat = true;
                    }
                    else if (stat.StatTypeID == (int)CalculatedStatTypes.HomeRun)
                    {
                        newState.RunnersScored.Add(player);
                        potentialAdjustment = true;
                        if (states.OriginalState.PlayerOnFirst != null)
                        {
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnFirst);
                        }
                        if (states.OriginalState.PlayerOnSecond != null)
                        {
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnSecond);
                        }
                        if (states.OriginalState.PlayerOnThird != null)
                        {
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnThird);
                        }
                        nextAtBat = true;
                    }
                    else if (stat.StatTypeID == (int)CalculatedStatTypes.GroundOut)
                    {
                        newState.NumberOfOuts++;
                        if (states.OriginalState.PlayerOnFirst != null)
                        {
                            potentialAdjustment     = true;
                            newState.PlayerOnSecond = states.OriginalState.PlayerOnFirst;
                        }
                        if (states.OriginalState.PlayerOnSecond != null)
                        {
                            potentialAdjustment    = true;
                            newState.PlayerOnThird = states.OriginalState.PlayerOnSecond;
                        }
                        if (states.OriginalState.PlayerOnThird != null && newState.NumberOfOuts < 3)
                        {
                            potentialAdjustment = true;
                            newState.RunnersScored.Add(states.OriginalState.PlayerOnThird);
                        }
                        nextAtBat = true;
                    }
                    else if (stat.StatTypeID == (int)CalculatedStatTypes.FlyOut || stat.StatTypeID == (int)CalculatedStatTypes.SF)
                    {
                        potentialAdjustment     = true;
                        newState.PlayerOnFirst  = states.OriginalState.PlayerOnFirst;
                        newState.PlayerOnSecond = states.OriginalState.PlayerOnSecond;
                        newState.PlayerOnThird  = states.OriginalState.PlayerOnThird;
                        newState.NumberOfOuts++;
                        nextAtBat = true;
                    }
                    else if (stat.StatTypeID == (int)CalculatedStatTypes.Strikeout)
                    {
                        newState.PlayerOnFirst  = states.OriginalState.PlayerOnFirst;
                        newState.PlayerOnSecond = states.OriginalState.PlayerOnSecond;
                        newState.PlayerOnThird  = states.OriginalState.PlayerOnThird;
                        newState.NumberOfOuts++;
                        nextAtBat = true;
                    }
                    else
                    {
                        newState.PlayerOnFirst  = states.OriginalState.PlayerOnFirst;
                        newState.PlayerOnSecond = states.OriginalState.PlayerOnSecond;
                        newState.PlayerOnThird  = states.OriginalState.PlayerOnThird;
                        changeState             = false;
                    }
                }
            }
            bool inningChange = false;

            if (newState.NumberOfOuts == 3)
            {
                inningChange = true;
            }

            //Modifying old at-bat, done mess with the state
            if (!isLatestGroup)
            {
                inningChange        = false;
                nextAtBat           = false;
                potentialAdjustment = false;
                changeState         = false;
            }

            newState.InningChanged       = inningChange;
            newState.PotentialAdjustment = potentialAdjustment;
            newState.NextAtBat           = nextAtBat;
            newState.ChangeState         = changeState;

            states.NewState = newState;

            return(states);
        }
示例#8
0
    protected void RecordStats_Click(object sender, EventArgs e)
    {
        GridViewRow           agvrow           = GamesPlayedList.Rows[GamesPlayedList.SelectedIndex];
        int                   gameid           = int.Parse((agvrow.FindControl("GameID") as Label).Text);
        PlayerGameStat        aPlayer          = null;
        List <PlayerGameStat> hometeamlist     = new List <PlayerGameStat>();
        List <PlayerGameStat> visitingteamlist = new List <PlayerGameStat>();

        MessageUserControl.TryRun(() =>
        {
            int aNumeric = 0;
            foreach (GridViewRow arow in HomeTeamList.Rows)
            {
                aPlayer          = new PlayerGameStat();
                aPlayer.PlayerID = int.Parse((arow.FindControl("PlayerID") as Label).Text);
                if (string.IsNullOrEmpty((arow.FindControl("Goals") as TextBox).Text))
                {
                    aPlayer.Goals = 0;
                }
                else
                {
                    if (int.TryParse((arow.FindControl("Goals") as TextBox).Text, out aNumeric))
                    {
                        aPlayer.Goals = aNumeric;
                    }
                    else
                    {
                        throw new Exception("You have not entered a number for a Goal at some point.");
                    }
                }
                if (string.IsNullOrEmpty((arow.FindControl("Assists") as TextBox).Text))
                {
                    aPlayer.Assists = 0;
                }
                else
                {
                    if (int.TryParse((arow.FindControl("Assists") as TextBox).Text, out aNumeric))
                    {
                        aPlayer.Assists = aNumeric;
                    }
                    else
                    {
                        throw new Exception("You have not entered a number for an Assists at some point.");
                    }
                }
                aPlayer.Yellow   = (arow.FindControl("YellowCard") as CheckBox).Checked;
                aPlayer.Red      = (arow.FindControl("RedCard") as CheckBox).Checked;
                aPlayer.Rostered = (arow.FindControl("Rostered") as CheckBox).Checked;
                hometeamlist.Add(aPlayer);
            }

            foreach (GridViewRow arow in VisitingTeamList.Rows)
            {
                aPlayer          = new PlayerGameStat();
                aPlayer.PlayerID = int.Parse((arow.FindControl("PlayerID") as Label).Text);
                if (string.IsNullOrEmpty((arow.FindControl("Goals") as TextBox).Text))
                {
                    aPlayer.Goals = 0;
                }
                else
                {
                    if (int.TryParse((arow.FindControl("Goals") as TextBox).Text, out aNumeric))
                    {
                        aPlayer.Goals = aNumeric;
                    }
                    else
                    {
                        throw new Exception("You have not entered a number for a Goal at some point.");
                    }
                }
                if (string.IsNullOrEmpty((arow.FindControl("Assists") as TextBox).Text))
                {
                    aPlayer.Assists = 0;
                }
                else
                {
                    if (int.TryParse((arow.FindControl("Assists") as TextBox).Text, out aNumeric))
                    {
                        aPlayer.Assists = aNumeric;
                    }
                    else
                    {
                        throw new Exception("You have not entered a number for an Assists at some point.");
                    }
                }
                aPlayer.Yellow   = (arow.FindControl("YellowCard") as CheckBox).Checked;
                aPlayer.Red      = (arow.FindControl("RedCard") as CheckBox).Checked;
                aPlayer.Rostered = (arow.FindControl("Rostered") as CheckBox).Checked;
                visitingteamlist.Add(aPlayer);
            }
            PlayerStatController sysmgr = new PlayerStatController();
            sysmgr.RecordGamePlayerStats(gameid, hometeamlist, visitingteamlist);
            HomeTeamName.Text       = "";
            HomeTeamScore.Text      = "";
            VisitingTeamName.Text   = "";
            VisitingTeamScore.Text  = "";
            HomeTeamList.DataSource = null;
            HomeTeamList.DataBind();
            VisitingTeamList.DataSource = null;
            VisitingTeamList.DataBind();
            GamesPlayedList.DataBind();
        }, "Player Stat Recording", "Stats have been successfully recorded for the game");
    }