public async Task <IActionResult> Get() { using (var client = new HttpClient()) { try { var url = $"{Constants.RestLinks.Base}{Constants.RestLinks.Player}"; var response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); var jsonPlayers = JsonPlayers.Get(await response.Content.ReadAsStringAsync()); var salaryUrl = $"{Constants.HockeyReferenceLinks.Base}{Constants.HockeyReferenceLinks.Salaries}"; var salaryResponse = await client.GetStringAsync(salaryUrl); JsonPlayers.FillSalaries(salaryResponse, jsonPlayers); return(Ok(_mapper.Map <IEnumerable <DTOPlayerSalary> >(jsonPlayers) .Where(x => x.Salary.HasValue && x.GamesPlayed > 30) .OrderBy(x => x.UnitPerPoint) .ToList())); } catch (Exception e) { return(BadRequest(e.Message)); } } }
public IEnumerable <DTOPlayerSalary> Convert(JsonPlayers source, IEnumerable <DTOPlayerSalary> destination, ResolutionContext context) { List <DTOPlayerSalary> playerSalaries = new List <DTOPlayerSalary>(); foreach (var p in source.data) { playerSalaries.Add(new DTOPlayerSalary() { Name = p.playerName, Salary = p.salary, Points = p.points, GamesPlayed = p.gamesPlayed, GameWinningGoals = p.gameWinningGoals, Assists = p.assists, Goals = p.goals, ProfileLink = LinkBuilder.GetPortraitLink(p.playerId), UnitPerPoint = p.salary.HasValue ? p.salary / (p.points > 0 ? p.points : 1) : null, UnitPerAssist = p.salary.HasValue ? p.salary / (p.assists > 0 ? p.assists : 1) : null, UnitPerGoal = p.salary.HasValue ? p.salary / (p.goals > 0 ? p.goals : 1) : null }); } return(playerSalaries); }