예제 #1
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 <SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);

            if (wrapper != null && wrapper.Language == language && wrapper.SummonerSpellData == summonerSpellData)
            {
                return(wrapper.SummonerSpellListStatic);
            }
            var json = await requester.CreateRequestAsync(
                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);
            return(wrapper.SummonerSpellListStatic);
        }
        public async Task <SummonerSpellStatic> GetSummonerSpellAsync(Region region, int summonerSpellId,
                                                                      SummonerSpellData summonerSpellData = SummonerSpellData.All, Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, SummonerSpellStaticWrapper>(
                SummonerSpellByIdCacheKey + summonerSpellId);

            if (wrapper != null && wrapper.SummonerSpellData == summonerSpellData && wrapper.Language == language)
            {
                return(wrapper.SummonerSpellStatic);
            }
            var listWrapper = cache.Get <string, SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);

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

            var spell = JsonConvert.DeserializeObject <SummonerSpellStatic>(json);

            cache.Add(SummonerSpellByIdCacheKey + summonerSpellId,
                      new SummonerSpellStaticWrapper(spell, language, summonerSpellData), SlidingExpirationTime);
            return(spell);
        }
예제 #3
0
        /// <summary>
        /// Get a summoner spell asynchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="summonerSpell">Summoner spell to retrieve.</param>
        /// <param name="summonerSpellData">Data to retrieve.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <returns>A summoner spell.</returns>
        public async Task <SummonerSpellStatic> GetSummonerSpellAsync(Region region, SummonerSpell summonerSpell,
                                                                      SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
        {
            var wrapper = Cache.Get <SummonerSpellStaticWrapper>(SummonerSpellCacheKey +
                                                                 summonerSpell.ToCustomString());

            if (wrapper != null && wrapper.SummonerSpellData == summonerSpellData && wrapper.Language == language)
            {
                return(wrapper.SummonerSpellStatic);
            }
            else
            {
                var listWrapper = Cache.Get <SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
                if (listWrapper != null && listWrapper.SummonerSpellData == summonerSpellData &&
                    listWrapper.Language == language)
                {
                    if (listWrapper.SummonerSpellListStatic.SummonerSpells.ContainsKey(summonerSpell.ToCustomString()))
                    {
                        return(listWrapper.SummonerSpellListStatic.SummonerSpells[summonerSpell.ToCustomString()]);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    var json = await requester.CreateRequestAsync(
                        string.Format(SummonerSpellRootUrl, region.ToString()) +
                        string.Format(IdUrl, (int)summonerSpell),
                        region,
                        new List <string>() {
                        string.Format("locale={0}", language.ToString()),
                        summonerSpellData == SummonerSpellData.none ?
                        string.Empty :
                        string.Format("spellData={0}", summonerSpellData.ToString())
                    });

                    var spell = await Task.Factory.StartNew <SummonerSpellStatic>(() =>
                                                                                  JsonConvert.DeserializeObject <SummonerSpellStatic>(json));

                    Cache.Add <SummonerSpellStaticWrapper>(SummonerSpellCacheKey + summonerSpell.ToCustomString(),
                                                           new SummonerSpellStaticWrapper(spell, language, summonerSpellData));
                    return(spell);
                }
            }
        }
예제 #4
0
        /// <summary>
        /// Get a summoner spell synchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="summonerSpell">Summoner spell to retrieve.</param>
        /// <param name="summonerSpellData">Data to retrieve.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <returns>A summoner spell.</returns>
        public SummonerSpellStatic GetSummonerSpell(Region region, SummonerSpell summonerSpell,
                                                    SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, SummonerSpellStaticWrapper>(
                SummonerSpellCacheKey + summonerSpell.ToCustomString());

            if (wrapper != null && wrapper.SummonerSpellData == summonerSpellData && wrapper.Language == language)
            {
                return(wrapper.SummonerSpellStatic);
            }
            else
            {
                var listWrapper = cache.Get <string, SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
                if (listWrapper != null && listWrapper.SummonerSpellData == summonerSpellData &&
                    listWrapper.Language == language)
                {
                    if (listWrapper.SummonerSpellListStatic.SummonerSpells.ContainsKey(summonerSpell.ToCustomString()))
                    {
                        return(listWrapper.SummonerSpellListStatic.SummonerSpells[summonerSpell.ToCustomString()]);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    var json = requester.CreateGetRequest(
                        string.Format(SummonerSpellRootUrl, region.ToString()) +
                        string.Format(IdUrl, (int)summonerSpell),
                        RootDomain,
                        new List <string>
                    {
                        string.Format("locale={0}", language.ToString()),
                        summonerSpellData == SummonerSpellData.none ?
                        string.Empty :
                        string.Format("spellData={0}", summonerSpellData.ToString())
                    });
                    var spell = JsonConvert.DeserializeObject <SummonerSpellStatic>(json);
                    cache.Add(SummonerSpellCacheKey + summonerSpell.ToCustomString(),
                              new SummonerSpellStaticWrapper(spell, language, summonerSpellData), DefaultSlidingExpiry);
                    return(spell);
                }
            }
        }
예제 #5
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 <SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);

            if (wrapper == null || wrapper.Language != language || wrapper.SummonerSpellData != summonerSpellData)
            {
                var json = await requester.CreateRequestAsync(string.Format(SummonerSpellRootUrl, region.ToString())
                                                              , new List <string>() { string.Format("locale={0}", language.ToString())
                                                                                      , summonerSpellData == SummonerSpellData.none ? string.Empty
                            : string.Format("spellData={0}", summonerSpellData.ToString()) });

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

                wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
                Cache.Add <SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey, wrapper);
            }
            return(wrapper.SummonerSpellListStatic);
        }
예제 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="region"></param>
        /// <param name="summonerSpellData"></param>
        /// <param name="language"></param>
        /// <returns></returns>
        public SummonerSpellListDtoStatic GetStaticSummonerSpells(Region region,
                                                                  SummonerSpellData summonerSpellData = SummonerSpellData.basic, 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(StaticDataRootUrl + SummonerSpellsUrl, region,
                                                      new List <string>
                {
                    string.Format("locale={0}", language.ToString()),
                    summonerSpellData == SummonerSpellData.basic ?
                    string.Empty :
                    string.Format(StaticTagsFormat, summonerSpellData.ToString())
                });
                var spells = JsonConvert.DeserializeObject <SummonerSpellListDtoStatic>(json);
                wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
                cache.Add(SummonerSpellsCacheKey, wrapper, DefaultSlidingExpiry);
            }
            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);
        }
예제 #8
0
 /// <summary>
 /// Get a summoner spell asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="summonerSpell">Summoner spell to retrieve.</param>
 /// <param name="summonerSpellData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A summoner spell.</returns>
 public async Task<SummonerSpellStatic> GetSummonerSpellAsync(Region region, SummonerSpell summonerSpell
     , SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<SummonerSpellStaticWrapper>(SummonerSpellCacheKey + summonerSpell.ToCustomString());
     if (wrapper != null && wrapper.SummonerSpellData == summonerSpellData && wrapper.Language == language)
     {
         return wrapper.SummonerSpellStatic;
     }
     else
     {
         var listWrapper = Cache.Get<SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
         if (listWrapper != null && listWrapper.SummonerSpellData == summonerSpellData
             && listWrapper.Language == language)
         {
             if (listWrapper.SummonerSpellListStatic.SummonerSpells.ContainsKey(summonerSpell.ToCustomString()))
             {
                 return listWrapper.SummonerSpellListStatic.SummonerSpells[summonerSpell.ToCustomString()];
             }
             else
             {
                 return null;
             }
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(SummonerSpellRootUrl, region.ToString())
                 + string.Format(IdUrl, (int)summonerSpell)
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , summonerSpellData == SummonerSpellData.none ? string.Empty
                         : string.Format("spellData={0}", summonerSpellData.ToString()) });
             var spell = await JsonConvert.DeserializeObjectAsync<SummonerSpellStatic>(json);
             Cache.Add<SummonerSpellStaticWrapper>(SummonerSpellCacheKey + summonerSpell.ToCustomString()
                 , new SummonerSpellStaticWrapper(spell, language, summonerSpellData));
             return spell;
         }
     }
 }
예제 #9
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<SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
     if (wrapper == null || wrapper.Language != language || wrapper.SummonerSpellData != summonerSpellData)
     {
         var json = await requester.CreateRequestAsync(string.Format(SummonerSpellRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , summonerSpellData == SummonerSpellData.none ? string.Empty
                     : string.Format("spellData={0}", summonerSpellData.ToString()) });
         var spells = await JsonConvert.DeserializeObjectAsync<SummonerSpellListStatic>(json);
         wrapper = new SummonerSpellListStaticWrapper(spells, language, summonerSpellData);
         Cache.Add<SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey, wrapper);
     }
     return wrapper.SummonerSpellListStatic;
 }
예제 #10
0
 /// <summary>
 /// Get a summoner spell asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="summonerSpell">Summoner spell to retrieve.</param>
 /// <param name="summonerSpellData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>A summoner spell.</returns>
 public async Task<SummonerSpellStatic> GetSummonerSpellAsync(Region region, SummonerSpell summonerSpell,
     SummonerSpellData summonerSpellData = SummonerSpellData.none, Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, SummonerSpellStaticWrapper>(
         SummonerSpellCacheKey + summonerSpell.ToCustomString());
     if (wrapper != null && wrapper.SummonerSpellData == summonerSpellData && wrapper.Language == language)
     {
         return wrapper.SummonerSpellStatic;
     }
     var listWrapper = cache.Get<string, SummonerSpellListStaticWrapper>(SummonerSpellsCacheKey);
     if (listWrapper != null && listWrapper.SummonerSpellData == summonerSpellData
         && listWrapper.Language == language)
     {
         return listWrapper.SummonerSpellListStatic.SummonerSpells.ContainsKey(summonerSpell.ToCustomString()) ?
             listWrapper.SummonerSpellListStatic.SummonerSpells[summonerSpell.ToCustomString()] : null;
     }
     var json = await requester.CreateGetRequestAsync(
         string.Format(SummonerSpellRootUrl, region.ToString()) +
         string.Format(IdUrl, (int)summonerSpell),
         RootDomain,
         new List<string>
         {
             string.Format("locale={0}", language.ToString()),
             summonerSpellData == SummonerSpellData.none ?
                 string.Empty :
                 string.Format("spellData={0}", summonerSpellData.ToString())
         });
     var spell = await Task.Factory.StartNew(() =>
         JsonConvert.DeserializeObject<SummonerSpellStatic>(json));
     cache.Add(SummonerSpellCacheKey + summonerSpell.ToCustomString(),
         new SummonerSpellStaticWrapper(spell, language, summonerSpellData), DefaultSlidingExpiry);
     return spell;
 }
예제 #11
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;
 }
예제 #12
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;
 }