Example #1
0
        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());
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }