Example #1
0
        /// <summary>
        /// Get a mastery asynchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryId">Id of the mastery to retrieve.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of th data to be retrieved.</param>
        /// <returns>A mastery.</returns>
        public async Task <MasteryStatic> GetMasteryAsync(Region region, int masteryId,
                                                          MasteryData masteryData = MasteryData.basic, Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, MasteryStaticWrapper>(MasteryCacheKey + masteryId);

            if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
            {
                return(wrapper.MasteryStatic);
            }
            var listWrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey);

            if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
            {
                return(listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId) ? listWrapper.MasteryListStatic.Masteries[masteryId] : null);
            }
            var args = "{\"data\" : \"" + masteryData.ToString() + "\", \"region\" : \"" + region.ToString() + ", \"id\" : \"" + masteryId + "\"}";
            var ir   = new Amazon.Lambda.Model.InvokeRequest
            {
                FunctionName  = "arn:aws:lambda:us-east-1:907841483528:function:staticGetMastery",
                PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args)
            };
            var json = "";
            var resp = await App.lambdaClient.InvokeAsync(ir);

            var sr = new StreamReader(resp.Payload);

            json = sr.ReadToEnd();
            var mastery = await Task.Factory.StartNew(() =>
                                                      JsonConvert.DeserializeObject <MasteryStatic>(json));

            cache.Add(MasteryCacheKey + masteryId, new MasteryStaticWrapper(mastery, language, masteryData),
                      DefaultSlidingExpiry);
            return(mastery);
        }
        public async Task <MasteryStatic> GetMasteryAsync(Region region, int masteryId,
                                                          MasteryData masteryData = MasteryData.All, Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, MasteryStaticWrapper>(MasteryByIdCacheKey + masteryId);

            if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
            {
                return(wrapper.MasteryStatic);
            }
            var listWrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey);

            if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
            {
                return(listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId)
                    ? listWrapper.MasteryListStatic.Masteries[masteryId] : null);
            }
            var json = await requester.CreateGetRequestAsync(
                StaticDataRootUrl + string.Format(MasteryByIdUrl, masteryId), region,
                new List <string>
            {
                $"locale={language}",
                masteryData == MasteryData.Basic ?
                string.Empty : string.Format(TagsParameter, masteryData.ToString().ToLower())
            }).ConfigureAwait(false);

            var mastery = JsonConvert.DeserializeObject <MasteryStatic>(json);

            cache.Add(MasteryByIdCacheKey + masteryId, new MasteryStaticWrapper(mastery, language, masteryData),
                      SlidingExpirationTime);
            return(mastery);
        }
Example #3
0
        /// <summary>
        /// Get a list of all masteries asynchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <returns>An MasteryListStatic object containing all masteries.</returns>
        public async Task <MasteryListStatic> GetMasteriesAsync(Region region,
                                                                MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
        {
            var wrapper = Cache.Get <MasteryListStaticWrapper>(MasteriesCacheKey);

            if (wrapper != null && language == wrapper.Language && masteryData == wrapper.MasteryData)
            {
                return(wrapper.MasteryListStatic);
            }
            var json = await requester.CreateRequestAsync(
                string.Format(MasteryRootUrl, region.ToString()),
                RootDomain,
                new List <string>
            {
                string.Format("locale={0}", language.ToString()),
                masteryData == MasteryData.none ?
                string.Empty :
                string.Format("masteryListData={0}", masteryData.ToString())
            });

            var masteries = await Task.Factory.StartNew(() =>
                                                        JsonConvert.DeserializeObject <MasteryListStatic>(json));

            wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
            Cache.Add(MasteriesCacheKey, wrapper);
            return(wrapper.MasteryListStatic);
        }
Example #4
0
        /// <summary>
        /// Get a mastery asynchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryId">Id of the mastery to retrieve.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of th data to be retrieved.</param>
        /// <returns>A mastery.</returns>
        public async Task <MasteryStatic> GetMasteryAsync(Region region, int masteryId,
                                                          MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
        {
            var wrapper = Cache.Get <MasteryStaticWrapper>(MasteryCacheKey + masteryId);

            if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
            {
                return(wrapper.MasteryStatic);
            }
            var listWrapper = Cache.Get <MasteryListStaticWrapper>(MasteriesCacheKey);

            if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
            {
                return(listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId) ? listWrapper.MasteryListStatic.Masteries[masteryId] : null);
            }
            var json = await requester.CreateRequestAsync(
                string.Format(MasteryRootUrl, region.ToString()) + string.Format(IdUrl, masteryId.ToString()),
                RootDomain,
                new List <string>
            {
                string.Format("locale={0}", language.ToString()),
                masteryData == MasteryData.none ?
                string.Empty :
                string.Format("masteryData={0}", masteryData.ToString())
            });

            var mastery = await Task.Factory.StartNew(() =>
                                                      JsonConvert.DeserializeObject <MasteryStatic>(json));

            Cache.Add(MasteryCacheKey + masteryId
                      , new MasteryStaticWrapper(mastery, language, masteryData));
            return(mastery);
        }
Example #5
0
        public MasteryData GetMasteries(region region, language lang, masteryListData?masteryData = null, bool useCaching = false)
        {
            MasteryData val = Cache.Get <MasteryData>(region.ToString(), lang.ToString(), masteryData.ToString()); //cache getting

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

            RiotApiCaller <MasteryData> caller = new RiotApiCaller <MasteryData>(suffix.mastery);

            caller.AddParam(param.region, region);
            caller.AddParam(param.locale, lang);
            if (masteryData != null)
            {
                caller.AddParam(param.masteryListData, masteryData);
            }
            else
            {
                caller.AddParam(param.masteryListData, "");                               //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());
        }
Example #6
0
        /// <summary>
        /// Retrieve language strings synchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <param name="version">Version of the dragon API.</param>
        /// <returns>A object containing the language strings.</returns>

        /*public LanguageStringsStatic GetLanguageStrings(Region region, Language language = Language.en_US,
         *  string version = "5.3.1")
         * {
         *  var wrapper = cache.Get<string, LanguageStringsStaticWrapper>(LanguageStringsCacheKey);
         *  if (wrapper != null && wrapper.Language == language && wrapper.Version == version)
         *  {
         *      return wrapper.LanguageStringsStatic;
         *  }
         *
         *  var json = requester.CreateGetRequest(string.Format(LanguageStringsRootUrl, region.ToString()), RootDomain,
         *      new List<string> {
         *          string.Format("locale={0}", language.ToString()),
         *          string.Format("version={0}", version)
         *      });
         *  var languageStrings = JsonConvert.DeserializeObject<LanguageStringsStatic>(json);
         *
         *  cache.Add(LanguageStringsCacheKey, new LanguageStringsStaticWrapper(languageStrings,
         *      language, version), DefaultSlidingExpiry);
         *
         *  return languageStrings;
         * }
         *
         * /// <summary>
         * /// Retrieve language strings asynchronously.
         * /// </summary>
         * /// <param name="region">Region from which to retrieve the data.</param>
         * /// <param name="language">Language of the data to be retrieved.</param>
         * /// <param name="version">Version of the dragon API.</param>
         * /// <returns>A object containing the language strings.</returns>
         * public async Task<LanguageStringsStatic> GetLanguageStringsAsync(Region region,
         *  Language language = Language.en_US, string version = "5.3.1")
         * {
         *  var wrapper = cache.Get<string, LanguageStringsStaticWrapper>(LanguageStringsCacheKey);
         *  if (wrapper != null && wrapper.Language == language && wrapper.Version == version)
         *  {
         *      return wrapper.LanguageStringsStatic;
         *  }
         *
         *  var json = await requester.CreateGetRequestAsync(string.Format(LanguageStringsRootUrl, region.ToString()),
         *      RootDomain, new List<string> {
         *          string.Format("locale={0}", language.ToString()),
         *          string.Format("version={0}", version)
         *      });
         *  var languageStrings = await Task.Factory.StartNew(()
         *      => JsonConvert.DeserializeObject<LanguageStringsStatic>(json));
         *
         *  cache.Add(LanguageStringsCacheKey, new LanguageStringsStaticWrapper(languageStrings,
         *      language, version), DefaultSlidingExpiry);
         *
         *  return languageStrings;
         * }
         *
         * /// <summary>
         * /// Get languages synchronously.
         * /// </summary>
         * /// <param name="region">Region from which to retrieve the data.</param>
         * /// <returns>A list of languages.</returns>
         * public List<Language> GetLanguages(Region region)
         * {
         *  var wrapper = cache.Get<string, List<Language>>(LanguagesCacheKey);
         *  if (wrapper != null)
         *  {
         *      return wrapper;
         *  }
         *
         *  var json = requester.CreateGetRequest(string.Format(LanguagesRootUrl, region.ToString()), RootDomain);
         *  var languages = JsonConvert.DeserializeObject<List<Language>>(json);
         *
         *  cache.Add(LanguagesCacheKey, languages, DefaultSlidingExpiry);
         *
         *  return languages;
         * }
         *
         * /// <summary>
         * /// Get languages asynchronously.
         * /// </summary>
         * /// <param name="region">Region from which to retrieve the data.</param>
         * /// <returns>A list of languages.</returns>
         * public async Task<List<Language>> GetLanguagesAsync(Region region)
         * {
         *  var wrapper = cache.Get<string, List<Language>>(LanguagesCacheKey);
         *  if (wrapper != null)
         *  {
         *      return wrapper;
         *  }
         *
         *  var json = await requester.CreateGetRequestAsync(string.Format(LanguagesRootUrl, region.ToString()),
         *      RootDomain);
         *  var languages = await Task.Factory.StartNew(() =>
         *      JsonConvert.DeserializeObject<List<Language>>(json));
         *
         *  cache.Add(LanguagesCacheKey, languages, DefaultSlidingExpiry);
         *
         *  return languages;
         * }
         *
         * /// <summary>
         * /// Get maps synchronously.
         * /// </summary>
         * /// <param name="region">Region from which to retrieve the data.</param>
         * /// <param name="language">Language of the data to be retrieved.</param>
         * /// <param name="version">Version of the dragon API.</param>
         * /// <returns>A list of objects representing maps.</returns>
         * public List<MapStatic> GetMaps(Region region, Language language = Language.en_US, string version = "5.3.1")
         * {
         *  var wrapper = cache.Get<string, MapsStaticWrapper>(MapCacheKey);
         *  if (wrapper != null && wrapper.Language == language && wrapper.Version == version)
         *  {
         *      return wrapper.MapsStatic.Data.Values.ToList();
         *  }
         *
         *  var json = requester.CreateGetRequest(string.Format(MapRootUrl, region.ToString()), RootDomain,
         *      new List<string> {
         *          string.Format("locale={0}", language.ToString()),
         *          string.Format("version={0}", version)
         *      });
         *  var maps = JsonConvert.DeserializeObject<MapsStatic>(json);
         *
         *  cache.Add(MapCacheKey, new MapsStaticWrapper(maps, language, version), DefaultSlidingExpiry);
         *
         *  return maps.Data.Values.ToList();
         * }
         *
         * /// <summary>
         * /// Get maps asynchronously.
         * /// </summary>
         * /// <param name="region">Region from which to retrieve the data.</param>
         * /// <param name="language">Language of the data to be retrieved.</param>
         * /// <param name="version">Version of the dragon API.</param>
         * /// <returns>A list of objects representing maps.</returns>
         * public async Task<List<MapStatic>> GetMapsAsync(Region region, Language language = Language.en_US,
         *  string version = "5.3.1")
         * {
         *  var wrapper = cache.Get<string, MapsStaticWrapper>(MapCacheKey);
         *  if (wrapper != null && wrapper.Language == language && wrapper.Version == version)
         *  {
         *      return wrapper.MapsStatic.Data.Values.ToList();
         *  }
         *
         *  var json = await requester.CreateGetRequestAsync(string.Format(MapRootUrl, region.ToString()), RootDomain,
         *      new List<string> {
         *          string.Format("locale={0}", language.ToString()),
         *          string.Format("version={0}", version)
         *      });
         *  var maps = await Task.Factory.StartNew(() =>
         *      JsonConvert.DeserializeObject<MapsStatic>(json));
         *
         *  cache.Add(MapCacheKey, new MapsStaticWrapper(maps, language, version), DefaultSlidingExpiry);
         *
         *  return maps.Data.Values.ToList();
         * }*/

        /// <summary>
        /// Get a list of all masteries synchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <returns>An MasteryListStatic object containing all masteries.</returns>
        public MasteryListStatic GetMasteries(Region region, MasteryData masteryData = MasteryData.basic,
                                              Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey);

            if (wrapper == null || language != wrapper.Language || masteryData != wrapper.MasteryData)
            {
                var args = "{\"data\" : \"" + masteryData.ToString() + "\", \"region\" : \"" + region.ToString() + "\"}";
                var ir   = new Amazon.Lambda.Model.InvokeRequest
                {
                    FunctionName  = "arn:aws:lambda:us-east-1:907841483528:function:staticGetMastery",
                    PayloadStream = AWSSDKUtils.GenerateMemoryStreamFromString(args)
                };
                var json = "";
                var test = Task.Run(async() =>
                {
                    var resp = await App.lambdaClient.InvokeAsync(ir);

                    var sr = new StreamReader(resp.Payload);

                    json = sr.ReadToEnd();
                });
                test.Wait();
                var masteries = JsonConvert.DeserializeObject <MasteryListStatic>(json);
                wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
                cache.Add(MasteriesCacheKey, wrapper, DefaultSlidingExpiry);
            }
            return(wrapper.MasteryListStatic);
        }
Example #7
0
        public void GetMasteries()
        {
            ApiService.ApiKey = APIKEY;//you must add your project, if you dont use ninject
            StaticApi   staticapi = new StaticApi(new ApiCache());
            MasteryData data      = staticapi.GetMasteries(region.tr, language.tr_TR);

            Assert.IsTrue(data.Data.Count > 0);
        }
Example #8
0
        protected Mastery(MasteryData data, ItemModifier modifier)
        {
            Id          = data.Id;
            Name        = I18N.Instance.Get(data.NameKey);
            Description = I18N.Instance.Get(data.DescriptionKey);

            this.modifier = modifier;
            this.Data     = data;
        }
Example #9
0
        /// <summary>
        /// Get a list of all masteries asynchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <returns>An MasteryListStatic object containing all masteries.</returns>
        public async Task <MasteryListStatic> GetMasteriesAsync(Region region
                                                                , MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
        {
            var wrapper = Cache.Get <MasteryListStaticWrapper>(MasteriesCacheKey);

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

                var masteries = await JsonConvert.DeserializeObjectAsync <MasteryListStatic>(json);

                wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
                Cache.Add <MasteryListStaticWrapper>(MasteriesCacheKey, wrapper);
            }
            return(wrapper.MasteryListStatic);
        }
Example #10
0
        /// <summary>
        /// Get a mastery synchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryId">Id of the mastery to retrieve.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of th data to be retrieved.</param>
        /// <returns>A mastery.</returns>
        public MasteryStatic GetMastery(Region region, int masteryId, MasteryData masteryData = MasteryData.none,
                                        Language language = Language.en_US)
        {
            var wrapper = Cache.Get <MasteryStaticWrapper>(MasteryCacheKey + masteryId);

            if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
            {
                return(wrapper.MasteryStatic);
            }
            else
            {
                var listWrapper = Cache.Get <MasteryListStaticWrapper>(MasteriesCacheKey);
                if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
                {
                    if (listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId))
                    {
                        return(listWrapper.MasteryListStatic.Masteries[masteryId]);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    var json = requester.CreateRequest(
                        string.Format(MasteryRootUrl, region.ToString()) + string.Format(IdUrl, masteryId),
                        RootDomain,
                        new List <string>
                    {
                        string.Format("locale={0}", language.ToString()),
                        masteryData == MasteryData.none ?
                        string.Empty :
                        string.Format("masteryData={0}", masteryData.ToString())
                    });
                    var mastery = JsonConvert.DeserializeObject <MasteryStatic>(json);
                    Cache.Add(MasteryCacheKey + masteryId
                              , new MasteryStaticWrapper(mastery, language, masteryData));
                    return(mastery);
                }
            }
        }
Example #11
0
        /// <summary>
        /// Get a list of all masteries synchronously.
        /// </summary>
        /// <param name="region">Region from which to retrieve the data.</param>
        /// <param name="masteryData">Data to retrieve.</param>
        /// <param name="language">Language of the data to be retrieved.</param>
        /// <returns>An MasteryListStatic object containing all masteries.</returns>
        public MasteryListStatic GetMasteries(Region region, MasteryData masteryData = MasteryData.none,
                                              Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey);

            if (wrapper == null || language != wrapper.Language || masteryData != wrapper.MasteryData)
            {
                var json = requester.CreateGetRequest(
                    string.Format(MasteryRootUrl, region.ToString()),
                    RootDomain,
                    new List <string>
                {
                    string.Format("locale={0}", language.ToString()),
                    masteryData == MasteryData.none ?
                    string.Empty :
                    string.Format("masteryListData={0}", masteryData.ToString())
                });
                var masteries = JsonConvert.DeserializeObject <MasteryListStatic>(json);
                wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
                cache.Add(MasteriesCacheKey, wrapper, DefaultSlidingExpiry);
            }
            return(wrapper.MasteryListStatic);
        }
        public async Task <MasteryListStatic> GetMasteriesAsync(Region region,
                                                                MasteryData masteryData = MasteryData.All, Language language = Language.en_US)
        {
            var wrapper = cache.Get <string, MasteryListStaticWrapper>(MasteriesCacheKey);

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

            var masteries = JsonConvert.DeserializeObject <MasteryListStatic>(json);

            wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
            cache.Add(MasteriesCacheKey, wrapper, SlidingExpirationTime);
            return(wrapper.MasteryListStatic);
        }
Example #13
0
 public WeaponMastery(MasteryData data, ItemModifier modifier) : base(data, modifier)
 {
 }
Example #14
0
 public MasteryStaticWrapper(MasteryStatic mastery, Language language, MasteryData masteryData)
 {
     MasteryStatic = mastery;
     Language      = language;
     MasteryData   = masteryData;
 }
Example #15
0
 public MasteryStaticWrapper(MasteryStatic mastery, Language language, MasteryData masteryData)
 {
     MasteryStatic = mastery;
     Language = language;
     MasteryData = masteryData;
 }
 public MasteryListStaticWrapper(MasteryListStatic masteries, Language language, MasteryData masteryData)
 {
     MasteryListStatic = masteries;
     Language          = language;
     MasteryData       = masteryData;
 }
Example #17
0
 public HealingMastery(MasteryData data, ItemModifier modifier) : base(data, modifier)
 {
 }
Example #18
0
 /// <summary>
 /// Get a list of all masteries synchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An MasteryListStatic object containing all masteries.</returns>
 public MasteryListStatic GetMasteries(Region region, MasteryData masteryData = MasteryData.none,
     Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, MasteryListStaticWrapper>(MasteriesCacheKey);
     if (wrapper == null || language != wrapper.Language || masteryData != wrapper.MasteryData)
     {
         var json = requester.CreateGetRequest(
             string.Format(MasteryRootUrl, region.ToString()),
             RootDomain,
             new List<string>
             {
                 string.Format("locale={0}", language.ToString()),
                 masteryData == MasteryData.none ?
                 string.Empty :
                 string.Format("masteryListData={0}", masteryData.ToString())
             });
         var masteries = JsonConvert.DeserializeObject<MasteryListStatic>(json);
         wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
         cache.Add(MasteriesCacheKey, wrapper, DefaultSlidingExpiry);
     }
     return wrapper.MasteryListStatic;
 }
Example #19
0
 public SummoningMastery(MasteryData data, ItemModifier modifier) : base(data, modifier)
 {
 }
Example #20
0
 /// <summary>
 /// Get a list of all masteries asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An MasteryListStatic object containing all masteries.</returns>
 public async Task<MasteryListStatic> GetMasteriesAsync(Region region,
     MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, MasteryListStaticWrapper>(MasteriesCacheKey);
     if (wrapper != null && language == wrapper.Language && masteryData == wrapper.MasteryData)
     {
         return wrapper.MasteryListStatic;
     }
     var json = await requester.CreateGetRequestAsync(
         string.Format(MasteryRootUrl, region.ToString()),
         RootDomain,
         new List<string>
         {
             string.Format("locale={0}", language.ToString()),
             masteryData == MasteryData.none ?
                 string.Empty :
                 string.Format("masteryListData={0}", masteryData.ToString())
         });
     var masteries = await Task.Factory.StartNew(() =>
         JsonConvert.DeserializeObject<MasteryListStatic>(json));
     wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
     cache.Add(MasteriesCacheKey, wrapper, DefaultSlidingExpiry);
     return wrapper.MasteryListStatic;
 }
 public MasteryListStaticWrapper(MasteryListStatic masteries, Language language, MasteryData masteryData)
 {
     MasteryListStatic = masteries;
     Language = language;
     MasteryData = masteryData;
 }
Example #22
0
 /// <summary>
 /// Get a list of all masteries asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of the data to be retrieved.</param>
 /// <returns>An MasteryListStatic object containing all masteries.</returns>
 public async Task<MasteryListStatic> GetMasteriesAsync(Region region
     , MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<MasteryListStaticWrapper>(MasteriesCacheKey);
     if (wrapper == null || language != wrapper.Language || masteryData != wrapper.MasteryData)
     {
         var json = await requester.CreateRequestAsync(string.Format(MasteryRootUrl, region.ToString())
             , new List<string>() { string.Format("locale={0}", language.ToString())
                 , masteryData == MasteryData.none ? string.Empty
                     : string.Format("masteryListData={0}", masteryData.ToString()) });
         var masteries = await JsonConvert.DeserializeObjectAsync<MasteryListStatic>(json);
         wrapper = new MasteryListStaticWrapper(masteries, language, masteryData);
         Cache.Add<MasteryListStaticWrapper>(MasteriesCacheKey, wrapper);
     }
     return wrapper.MasteryListStatic;
 }
Example #23
0
 public MagicMastery(MasteryData data, ItemModifier modifier) : base(data, modifier)
 {
 }
Example #24
0
 /// <summary>
 /// Get a mastery asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryId">Id of the mastery to retrieve.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of th data to be retrieved.</param>
 /// <returns>A mastery.</returns>
 public async Task<MasteryStatic> GetMasteryAsync(Region region, int masteryId
     , MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
 {
     var wrapper = Cache.Get<MasteryStaticWrapper>(MasteryCacheKey + masteryId);
     if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
     {
         return wrapper.MasteryStatic;
     }
     else
     {
         var listWrapper = Cache.Get<MasteryListStaticWrapper>(MasteriesCacheKey);
         if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
         {
             if (listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId))
             {
                 return listWrapper.MasteryListStatic.Masteries[masteryId];
             }
             else
             {
                 return null;
             }
         }
         else
         {
             var json = await requester.CreateRequestAsync(string.Format(MasteryRootUrl, region.ToString())
                 + string.Format(IdUrl, masteryId.ToString())
                 , new List<string>() { string.Format("locale={0}", language.ToString())
                     , masteryData == MasteryData.none ? string.Empty
                         : string.Format("masteryData={0}", masteryData.ToString()) });
             var mastery = await JsonConvert.DeserializeObjectAsync<MasteryStatic>(json);
             Cache.Add<MasteryStaticWrapper>(MasteryCacheKey + masteryId
                 , new MasteryStaticWrapper(mastery, language, masteryData));
             return mastery;
         }
     }
 }
Example #25
0
 /// <summary>
 /// Get a mastery asynchronously.
 /// </summary>
 /// <param name="region">Region from which to retrieve the data.</param>
 /// <param name="masteryId">Id of the mastery to retrieve.</param>
 /// <param name="masteryData">Data to retrieve.</param>
 /// <param name="language">Language of th data to be retrieved.</param>
 /// <returns>A mastery.</returns>
 public async Task<MasteryStatic> GetMasteryAsync(Region region, int masteryId,
     MasteryData masteryData = MasteryData.none, Language language = Language.en_US)
 {
     var wrapper = cache.Get<string, MasteryStaticWrapper>(MasteryCacheKey + masteryId);
     if (wrapper != null && wrapper.Language == language && wrapper.MasteryData == masteryData)
     {
         return wrapper.MasteryStatic;
     }
     var listWrapper = cache.Get<string, MasteryListStaticWrapper>(MasteriesCacheKey);
     if (listWrapper != null && listWrapper.Language == language && listWrapper.MasteryData == masteryData)
     {
         return listWrapper.MasteryListStatic.Masteries.ContainsKey(masteryId) ? listWrapper.MasteryListStatic.Masteries[masteryId] : null;
     }
     var json = await requester.CreateGetRequestAsync(
         string.Format(MasteryRootUrl, region.ToString()) + string.Format(IdUrl, masteryId.ToString()),
         RootDomain,
         new List<string>
         {
             string.Format("locale={0}", language.ToString()),
             masteryData == MasteryData.none ?
                 string.Empty :
                 string.Format("masteryData={0}", masteryData.ToString())
         });
     var mastery = await Task.Factory.StartNew(() =>
         JsonConvert.DeserializeObject<MasteryStatic>(json));
     cache.Add(MasteryCacheKey + masteryId, new MasteryStaticWrapper(mastery, language, masteryData),
         DefaultSlidingExpiry);
     return mastery;
 }