Beispiel #1
0
        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);
        }
Beispiel #2
0
        public async Task <Dictionary <string, int> > GetPlayerTeamMapAsync(WeekInfo week)
        {
            TeamWeekStatsCacheData cacheData = await _cache.GetOrCreateAsync(CacheKey(week), () => CreateCacheDataAsync(week));

            return(cacheData.GetPlayerTeamMap());
        }
Beispiel #3
0
        public async Task <List <TeamWeekStats> > GetForWeekAsync(WeekInfo week)
        {
            TeamWeekStatsCacheData cacheData = await _cache.GetOrCreateAsync(CacheKey(week), () => CreateCacheDataAsync(week));

            return(cacheData.GetStats());
        }