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