private static List <PlayerWeekStatsVersioned.Player> GetPlayers(JObject playersObject, WeekInfo week, Dictionary <string, int> playerTeamMap) { var result = new List <PlayerWeekStatsVersioned.Player>(); foreach (var p in playersObject) { string nflId = p.Key; var statsObject = SourceJsonReader.GetStatsObjectForPlayer(p.Value, week); Dictionary <WeekStatType, double> stats = SourceJsonReader.ResolveStatsMapFromObject(statsObject); var player = new PlayerWeekStatsVersioned.Player { NflId = nflId, Stats = stats }; if (playerTeamMap.TryGetValue(nflId, out int teamId)) { player.TeamId = teamId; } result.Add(player); } return(result); }
public async Task <PlayerWeekStatsVersioned> MapAsync(string httpResponse, WeekInfo week) { JObject playersObject = SourceJsonReader.GetPlayersObject(httpResponse); Dictionary <string, int> playerTeamMap = await _teamStatsCache.GetPlayerTeamMapAsync(week); var players = GetPlayers(playersObject, week, playerTeamMap); return(new PlayerWeekStatsVersioned { Week = week, Players = players }); }