public static PubgSeason GetSeason(PubgRegion region) { PubgSeason season = null; if (region.IsXbox()) { season = StoredItems.OfType <PubgSeason>().FirstOrDefault(p => p.Id.ToLowerInvariant().Contains("xb")); } else if (region.IsPC()) { season = StoredItems.OfType <PubgSeason>().FirstOrDefault(p => !p.Id.ToLowerInvariant().Contains("xb")); } if (season != null) { return(season); } var seasonService = new PubgSeasonService(ApiKey); List <PubgSeason> seasons = new List <PubgSeason>(); if (region.IsPC()) { seasons = seasonService.GetSeasonsPC().ToList(); } else if (region.IsXbox()) { seasons = seasonService.GetSeasonsXbox(region).ToList(); } seasons.ForEach(s => StoredItems.Add(s)); return(seasons.LastOrDefault()); }
public static PubgSeason GetCurrentSeason() { PubgSeason currentSeason = null; using (var pubgSeasons = _seasonService.GetSeasons(PubgRegion.PCNorthAmerica).GetEnumerator()) { while (pubgSeasons.MoveNext()) { if (pubgSeasons.Current.IsCurrentSeason) { currentSeason = pubgSeasons.Current; break; } } } return(currentSeason); }
public static async Task <PubgPlayerSeason> GetPlayerSeason(PubgPlayer player, PubgRegion region, PubgSeason season) { var cacheKey = new PlayerSeasonKey(player.Id, region, season.Id); if (cachedPlayerSeasons.ContainsKey(cacheKey) && DateTime.Now - cachedPlayerSeasons[cacheKey].Item2 < cacheTimeout) { System.Console.WriteLine("Cache hit for player season {0}", player.Name); return(cachedPlayerSeasons[cacheKey].Item1); } var pubgPlayerSeason = await _playerService.GetPlayerSeasonAsync(region, player.Id, season.Id); cachedPlayerSeasons[cacheKey] = new Tuple <PubgPlayerSeason, DateTime>(pubgPlayerSeason, DateTime.Now); return(pubgPlayerSeason); }