private async Task <TeamWeekStatsCacheData> CreateCacheDataAsync(WeekInfo week) { var data = new TeamWeekStatsCacheData(); _logger.LogInformation($"Resolving team week stats for week '{week}'."); List <string> gameIds = await _weekMatchups.GetGameIdsForWeekAsync(week); foreach (var id in gameIds) { SourceResult <TeamWeekStatsSourceModel> result = await _source.GetAsync((id, week)); data.UpdateWith(result.Value.HomeTeamStats); data.UpdateWith(result.Value.AwayTeamStats); _logger.LogDebug($"Resolved team week stats for game '{id}'."); } return(data); }
public async Task <Dictionary <string, int> > GetPlayerTeamMapAsync(WeekInfo week) { TeamWeekStatsCacheData cacheData = await _cache.GetOrCreateAsync(CacheKey(week), () => CreateCacheDataAsync(week)); return(cacheData.GetPlayerTeamMap()); }
public async Task <List <TeamWeekStats> > GetForWeekAsync(WeekInfo week) { TeamWeekStatsCacheData cacheData = await _cache.GetOrCreateAsync(CacheKey(week), () => CreateCacheDataAsync(week)); return(cacheData.GetStats()); }