Beispiel #1
0
 public SummonerSpellStaticWrapper(SummonerSpellStatic spell, Language language
                                   , SummonerSpellData summonerSpellData)
 {
     SummonerSpellStatic = spell;
     Language            = language;
     SummonerSpellData   = summonerSpellData;
 }
        /// <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);
        }
Beispiel #3
0
        public SummonerSpellData GetSummonerSpell(long summonerSpellId, region region, language lang, spellData?spellData = null, bool useCaching = false)
        {
            SummonerSpellData val = Cache.Get <SummonerSpellData>(summonerSpellId.ToString(), region.ToString(), lang.ToString(), spellData.ToString()); //cache getting

            if (val != null)
            {
                return(val);
            }

            RiotApiCaller <SummonerSpellData> caller = new RiotApiCaller <SummonerSpellData>(suffix.summonerSpellById);

            caller.AddParam(param.region, region);
            caller.AddParam(param.locale, lang);
            caller.AddParam(param.id, summonerSpellId);
            if (spellData != null)
            {
                caller.AddParam(param.spellData, spellData);
            }
            else
            {
                caller.AddParam(param.spellData, "");                                     //important for basic information
            }
            if (useCaching)                                                               //your choice
            {
                Cache.AddOrUpdate(caller.CreateRequest(new System.TimeSpan(1, 0, 0, 0))); // cache adding
            }
            else
            {
                caller.CreateRequest();//everytime data coming from riotgames server
            }
            return(caller.Result.FirstOrDefault());
        }
 public SummonerSpellListStaticWrapper(SummonerSpellListStatic spells, Language language
     , SummonerSpellData summonerSpellData)
 {
     SummonerSpellListStatic = spells;
     Language = language;
     SummonerSpellData = summonerSpellData;
 }
 public SummonerSpellListStaticWrapper(SummonerSpellListDtoStatic spells, Language language
                                       , SummonerSpellData summonerSpellData)
 {
     SummonerSpellListStatic = spells;
     Language          = language;
     SummonerSpellData = summonerSpellData;
 }
        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);
        }
Beispiel #7
0
        public void GetSummonerSpell()
        {
            ApiService.ApiKey = APIKEY;//you must add your project, if you dont use ninject
            StaticApi         staticapi = new StaticApi(new ApiCache());
            SummonerSpellData data      = staticapi.GetSummonerSpell(1, region.tr, language.tr_TR, spellData.all);

            Assert.IsNotNull(data);
        }
Beispiel #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),
                        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);
                }
            }
        }
Beispiel #9
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);
                }
            }
        }
Beispiel #10
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);
        }
        /// <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);
        }
Beispiel #13
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;
 }
Beispiel #14
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;
 }
Beispiel #15
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;
 }
Beispiel #16
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;
         }
     }
 }
Beispiel #17
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;
 }