public async Task <TeamModel> CreateTeamAsync(TeamModel newTeam) { var teamEntity = _mapper.Map <TeamEntity>(newTeam); _foootballRepository.CreateTeam(teamEntity); var result = await _foootballRepository.SaveChangesAsync(); if (result) { return(_mapper.Map <TeamModel>(teamEntity)); } throw new Exception("Database Error"); }
public async Task <IActionResult> Get(string leagueCode) { var competition = await _footballRepository.GetCompetitionAsync(x => x.Code.Equals(leagueCode)); if (competition != null) { return(StatusCode(StatusCodes.Status409Conflict, new { message = "League already imported" })); } var competitionModel = await _footballClient.GetCompetitionByCodeAsync(leagueCode); if (competitionModel.Id == 0) { return(NotFound(new { message = "Not found" })); } competition = _mapper.Map <Competition>(competitionModel); var competitionTeamModel = await _footballClient.GetTeamsByCompetitionAsync(competitionModel.Id); var teams = _mapper.Map <List <Team> >(competitionTeamModel.Teams); await GetPlayersForTeams(teams); _footballRepository.Add(competition); await _footballRepository.UpsertTeamsAsync(teams); await _footballRepository.UpsertCompetitionTeamsAsync(GetCompetitionTeams(competition, teams)); await _footballRepository.SaveChangesAsync(); return(CreatedAtAction(nameof(Get), leagueCode, new { message = "Successfully imported" })); }
public async Task <PlayerModel> CreatePlayerAsync(long teamId, PlayerModel newPlayer) { await ValidateTeamAsync(teamId); newPlayer.TeamId = teamId; var playerEntity = _mapper.Map <PlayerEntity>(newPlayer); _footballRepository.CreatePlayer(teamId, playerEntity); var result = await _footballRepository.SaveChangesAsync(); if (!result) { throw new Exception("Database Error"); } return(_mapper.Map <PlayerModel>(playerEntity)); }