public IActionResult Post([FromBody] Player player) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } context.Player.Add(player); try { context.SaveChanges(); } catch (DbUpdateException) { if (PlayerExists(player.PlayerId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(Ok(player)); }
public IActionResult Post([FromBody] Game game) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } context.Game.Add(game); try { context.SaveChanges(); } catch (DbUpdateException) { if (GameExists(game.GameId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(Ok(game)); }
public IActionResult Post([FromBody] TwoPlayerGame model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Game game = new Game(); var gamePlayers = new GamePlayer[] { new GamePlayer(model.playerOneId, 1, game.GameId, true), new GamePlayer(model.playerTwoId, 2, game.GameId, true) }; foreach (GamePlayer g in gamePlayers) { context.GamePlayer.Add(g); } game.GamePlayers = gamePlayers.ToList(); game.TeamOneScore = model.teamOneScore; game.TeamTwoScore = model.teamTwoScore; //Check scores against each other to calculate Point Differential //and decide who won if (model.teamOneScore > model.teamTwoScore) { //Modify the GamePlayer instances gamePlayers[0].Won = true; gamePlayers[0].PointDiff = (model.teamOneScore - model.teamTwoScore); gamePlayers[1].Won = false; gamePlayers[1].PointDiff = (model.teamTwoScore - model.teamOneScore); //Modify the Stats classes for each player var playerOneStats = context.Stats.Single(s => s.PlayerId == model.playerOneId); var playerTwoStats = context.Stats.Single(s => s.PlayerId == model.playerTwoId); playerOneStats.AddWin(); playerTwoStats.AddLoss(); } else { gamePlayers[0].Won = false; gamePlayers[0].PointDiff = (model.teamOneScore - model.teamTwoScore); gamePlayers[1].Won = true; gamePlayers[1].PointDiff = (model.teamTwoScore - model.teamOneScore); //Modify the Stats classes for each player var playerOneStats = context.Stats.Single(s => s.PlayerId == model.playerOneId); var playerTwoStats = context.Stats.Single(s => s.PlayerId == model.playerTwoId); playerTwoStats.AddWin(); playerOneStats.AddLoss(); } context.Game.Add(game); context.SaveChanges(); return(Ok(game)); }