public async Task <bool> CreateNewGameByPlayerId(DTONewPlayerGame newPlayerGame) { try { var game = await _context.Game.Include("Course.Holes").SingleAsync(g => g.Id == newPlayerGame.GameId); // var courseHole = await _context.Course.Include(h => h.Holes).FirstOrDefaultAsync(c => c.Id == game.Course); var player = await _context.Player.SingleAsync(p => p.Id == newPlayerGame.PlayerId); var playerHoleScoreList = new List <PlayerHoleScore>(); var pscors = _context.Score.Where(x => x.Player.Id == newPlayerGame.PlayerId && x.Game.Id == newPlayerGame.GameId).SingleOrDefault(); if (pscors == null) { foreach (var hole in game.Course.Holes) { var playerScore = new PlayerHoleScore { Player = player, Hole = hole, Points = 0, Score = 0 }; playerHoleScoreList.Add(playerScore); } var score = new Score { Player = player, Game = game, Holes = playerHoleScoreList }; await _context.AddAsync(score); await _context.SaveChangesAsync(); return(true); } else { return(true); } } catch (Exception e) { return(false); } }
public async Task <IActionResult> CreateNewPlayerGame([FromBody] DTONewPlayerGame newPlayerGame) { try { if (!ModelState.IsValid) { return(new BadRequestObjectResult(new { msg = "Invalid model" })); } if (await _scoreRepository.CreateNewGameByPlayerId(newPlayerGame)) { return(Ok(new { msg = "Player Game Created" })); } return(new BadRequestObjectResult(new { msg = "Could Create Game" })); } catch (Exception e) { Console.WriteLine(e); throw; } }