public async Task <IActionResult> GetPlayer([FromRoute] int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var response = new PlayerListVm(); response.Players = new List <PlayerVm>(); Player P = await _context.Player.FindAsync(id); if (P == null) { return(NotFound($"No players exists with playerId: {id}")); } response.Players.Add(new PlayerVm(P)); return(Ok(response)); //var player = await _context.Player.FindAsync(id); //if (player == null) //{ // return NotFound(); //} //return Ok(player); }
public async Task <PlayerListVm> GetPlayer() { // return _context.Player; var response = new PlayerListVm(); response.Players = await _context.Player .Select(p => new PlayerVm(p)) .ToListAsync(); return(response); }
public async Task <IActionResult> PutPlayer([FromBody] PlayerListVm playerList) { // Final validation of request model if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var players = playerList.ConvertToListOfPlayerModels(); foreach (Player p in players) { // Validate EF model TryValidateModel(p); if (!ModelState.IsValid) { BadRequest(ModelState); } if (!PlayerExists(p.Id)) { return(NotFound($"Player Id: {p.Id} doesn't exist.")); } } _context.Player.UpdateRange(players); try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { throw; } return(Ok(playerList)); }
public async Task <IActionResult> PostPlayer([FromBody] PlayerListVm playerList) { // Final validation of request model if (!ModelState.IsValid) { return(BadRequest(ModelState)); } foreach (PlayerVm p in playerList.Players) { TryValidateModel(p); if (!ModelState.IsValid) { BadRequest(ModelState); } } var players = playerList.ConvertToListOfPlayerModels(); _context.Player.AddRange(players); try { await _context.SaveChangesAsync(); } catch (DbUpdateException ex) when((ex.InnerException as SqlException)?.Number == 2627) { var message = SqlExceptionHandlers.DuplicatePrimaryKeyException(ex); return(BadRequest(message)); } var ids = players.Select(p => p.Id).ToArray(); return(CreatedAtAction("GetPlayer", new { id = ids }, playerList)); }