示例#1
0
        /// <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));
            }
        }