/// <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); }
/// <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); } } }
/// <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); } } }
/// <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); }
/// <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; } } }
/// <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> /// 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; }
/// <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; }
/// <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; }