/// <summary> /// Method to Add the Game passed in the parameters to the database /// </summary> /// <param name="game">Object Game to Add</param> public async Task <ApiResponse> Add(Game game) { try { if (!await _teamBusiness.DuplicatePlayer(game.Plays.ToList())) { var newGame = _gameBusiness.SeparatePlay(game); await _context.Games.AddAsync(newGame); await _context.SaveChangesAsync(); var reponse = await _playBusiness.SetUp(game.Plays.ToList(), newGame.Id); if (reponse.Status == ApiStatus.Ok) { var reponseGenerate = await _gameBusiness.GenerateTeamRoute(game, newGame.Id); if (reponseGenerate.Status == ApiStatus.Ok) { return new ApiResponse { Status = ApiStatus.Ok, Message = ApiAction.Update, Response = await this.Find(newGame.Id) } } ; else { return(reponseGenerate); } } else { return(reponse); } } else { return(new ApiResponse { Status = ApiStatus.CantAdd, Message = "Impossible, un joueur est dans plusieurs équipes selectionnées !" }); } } catch (Exception e) { return(TranslateError.Convert(e)); } }