コード例 #1
0
        /// <inheritdoc />
        public async Task <ItemListStatic> GetAllAsync(string version, Language language = Language.en_US)
        {
            var cacheKey = ItemsCacheKey + language + version;
            var wrapper  = cache.Get <string, ItemListStaticWrapper>(cacheKey);

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

            var items = JsonConvert.DeserializeObject <ItemListStatic>(json);

            wrapper = new ItemListStaticWrapper(items, language, version);
            cache.Add(cacheKey, wrapper, SlidingExpirationTime);
            return(wrapper.ItemListStatic);
        }
コード例 #2
0
        public async Task <ItemListStatic> GetItemsAsync(Region region, ItemData itemData = ItemData.All,
                                                         Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, ItemListStaticWrapper>(ItemsCacheKey);

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

            var items = JsonConvert.DeserializeObject <ItemListStatic>(json);

            wrapper = new ItemListStaticWrapper(items, language, itemData);
            cache.Add(ItemsCacheKey, wrapper, SlidingExpirationTime);
            return(wrapper.ItemListStatic);
        }
コード例 #3
0
ファイル: StaticRiotApi.cs プロジェクト: RejectKid/RiotSharp
 /// <summary>
 /// Get a list of all items synchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="itemData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An ItemListStatic object containing all items.</returns>
 public async Task<ItemListStatic> GetItemsAsync(Region region, ItemData itemData = ItemData.none,
     Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, ItemListStaticWrapper>(ItemsCacheKey);
     if (wrapper != null && language == wrapper.Language && itemData == wrapper.ItemData)
     {
         return wrapper.ItemListStatic;
     }
     var json = await requester.CreateGetRequestAsync(
         string.Format(ItemRootUrl, region.ToString()),
         RootDomain,
         new List<string>
         {
             string.Format("locale={0}", language.ToString()),
             itemData == ItemData.none ?
                 string.Empty :
                 string.Format("itemListData={0}", itemData.ToString())
         });
     var items = await Task.Factory.StartNew(() =>
         JsonConvert.DeserializeObject<ItemListStatic>(json));
     wrapper = new ItemListStaticWrapper(items, language, itemData);
     cache.Add(ItemsCacheKey, wrapper, DefaultSlidingExpiry);
     return wrapper.ItemListStatic;
 }
コード例 #4
0
ファイル: StaticRiotApi.cs プロジェクト: RejectKid/RiotSharp
 /// <summary>
 /// Get a list of all items synchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="itemData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An ItemListStatic object containing all items.</returns>
 public ItemListStatic GetItems(Region region, ItemData itemData = ItemData.none,
     Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, ItemListStaticWrapper>(ItemsCacheKey);
     if (wrapper == null || language != wrapper.Language || itemData != wrapper.ItemData)
     {
         var json = requester.CreateGetRequest(
             string.Format(ItemRootUrl, region.ToString()),
             RootDomain,
             new List<string>
             {
                 string.Format("locale={0}", language.ToString()),
                 itemData == ItemData.none ?
                 string.Empty :
                 string.Format("itemListData={0}", itemData.ToString())
             });
         var items = JsonConvert.DeserializeObject<ItemListStatic>(json);
         wrapper = new ItemListStaticWrapper(items, language, itemData);
         cache.Add(ItemsCacheKey, wrapper, DefaultSlidingExpiry);
     }
     return wrapper.ItemListStatic;
 }