/// <inheritdoc />
        public async Task <SummonerSpellListStatic> GetAllAsync(string version, Language language = Language.en_US)
        {
            var cacheKey = SummonerSpellsCacheKey + language + version;
            var wrapper  = cache.Get <string, SummonerSpellListStaticWrapper>(cacheKey);

            if (wrapper != null && wrapper.Language == language && wrapper.Version == version)
            {
                return(wrapper.SummonerSpellListStatic);
            }
            var json = await requester.CreateGetRequestAsync(Host, CreateUrl(version, language, SummonerSpellsDataKey)).ConfigureAwait(false);

            var spells = JsonConvert.DeserializeObject <SummonerSpellListStatic>(json);

            wrapper = new SummonerSpellListStaticWrapper(spells, language, version);
            cache.Add(cacheKey, wrapper, SlidingExpirationTime);
            return(wrapper.SummonerSpellListStatic);
        }
        public async Task <SummonerSpellListStatic> GetSummonerSpellsAsync(Region region,
                                                                           SummonerSpellData summonerSpellData = SummonerSpellData.All, Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);

            if (wrapper != null && wrapper.Language == language && wrapper.SummonerSpellData == summonerSpellData)
            {
                return(wrapper.SummonerSpellListStatic);
            }
            var json = await requester.CreateGetRequestAsync(StaticDataRootUrl + SummonerSpellsUrl, region,
                                                             new List <string>
            {
                $"locale={language}",
                summonerSpellData == SummonerSpellData.Basic ?
                string.Empty :
                string.Format(TagsParameter, summonerSpellData.ToString().ToLower())
            }).ConfigureAwait(false);

            var spells = JsonConvert.DeserializeObject <SummonerSpellListStatic>(json);

            wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
            cache.Add(SummonerSpellsCacheKey, wrapper, SlidingExpirationTime);
            return(wrapper.SummonerSpellListStatic);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Get a list of all summoner spells asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="summonerSpellData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A SummonerSpellListStatic object containing all summoner spells.</returns>
 public async Task<SummonerSpellListStatic> GetSummonerSpellsAsync(Region region,
     SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
     if (wrapper != null && wrapper.Language == language && wrapper.SummonerSpellData == summonerSpellData)
     {
         return wrapper.SummonerSpellListStatic;
     }
     var json = await requester.CreateGetRequestAsync(
         string.Format(SummonerSpellRootUrl, region.ToString()),
         RootDomain,
         new List<string>
         {
             string.Format("locale={0}", language.ToString()),
             summonerSpellData == SummonerSpellData.none ?
                 string.Empty :
                 string.Format("spellData={0}", summonerSpellData.ToString())
         });
     var spells = await Task.Factory.StartNew(() =>
         JsonConvert.DeserializeObject<SummonerSpellListStatic>(json));
     wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
     cache.Add(SummonerSpellsCacheKey, wrapper, DefaultSlidingExpiry);
     return wrapper.SummonerSpellListStatic;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Get a list of all summoner spells synchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="summonerSpellData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A SummonerSpellListStatic object containing all summoner spells.</returns>
 public SummonerSpellListStatic GetSummonerSpells(Region region,
     SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
     if (wrapper == null || wrapper.Language != language || wrapper.SummonerSpellData != summonerSpellData)
     {
         var json = requester.CreateGetRequest(
             string.Format(SummonerSpellRootUrl, region.ToString()),
             RootDomain,
             new List<string>
             {
                 string.Format("locale={0}", language.ToString()),
                 summonerSpellData == SummonerSpellData.none ?
                 string.Empty :
                 string.Format("spellData={0}", summonerSpellData.ToString())
             });
         var spells = JsonConvert.DeserializeObject<SummonerSpellListStatic>(json);
         wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
         cache.Add(SummonerSpellsCacheKey, wrapper, DefaultSlidingExpiry);
     }
     return wrapper.SummonerSpellListStatic;
 }