public async Task <IActionResult> InsertTeam(int leagueId, [FromBody] AddTeamBindingModel model)
        {
            var result = await _teamService.InsertTeamAsync(leagueId, model);

            if (result.ErrorOccurred)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Ejemplo n.º 2
0
        public async Task <ResponseDto <BaseModelDto> > InsertTeamAsync(int leagueId, AddTeamBindingModel model)
        {
            var response = new ResponseDto <BaseModelDto>();

            var league = _leagueRepository.GetById(leagueId);

            if (league == null)
            {
                response.Errors.Add(ServiceErrors.LEAGUE_DOESNT_EXIST);
                return(response);
            }

            var teamsQuantity = league.Teams.Count;

            if (teamsQuantity >= league.Quantity)
            {
                response.Errors.Add(ServiceErrors.TEAM_THER_IS_ENOUGH_TEAMS_IN_THAT_LEAGUE);
                return(response);
            }

            var teams  = _teamRepository.GetAll().ToList();
            var exists = teams.Exists(t => t.Name == model.Name);

            if (exists)
            {
                response.Errors.Add(ServiceErrors.TEAM_WITH_THAT_NAME_ALREADY_EXISTS);
                return(response);
            }

            var team = new Team
            {
                League = league,
                Name   = model.Name
            };

            await _teamRepository.InsertAsync(team);

            return(response);
        }