Xaye.Fred.Fred.GetCategoryAsync C# (CSharp) Méthode

GetCategoryAsync() public méthode

Get a category. Corresponds to http://api.stlouisfed.org/fred/category
public GetCategoryAsync ( int id ) : Task
id int The id for a category.
Résultat Task
        public async Task<Category> GetCategoryAsync(int id)
        {
            if (_categoryCache.ContainsKey(id))
            {
                return _categoryCache[id];
            }

            var url = Format(Urls.Category, _key, id);

            var root = await GetRoot(url);
            var element = root.Elements("category").First();
            return CreateCategory(element);
        }

Usage Example

Exemple #1
0
 internal Category(Fred fred) : base(fred)
 {
     _childern = new Lazy <Task <IEnumerable <Category> > >(async() => await Fred.GetCategoryChildernAsync(Id));
     _parent   = new Lazy <Task <Category> >(async() => Id == 0 ? this : await Fred.GetCategoryAsync(ParentId));
     _related  = new Lazy <Task <IEnumerable <Category> > >(async() => await Fred.GetCategoryRelatedAsync(Id));
     _series   = new Lazy <Task <List <Series> > >(
         async() =>
     {
         var series = (List <Series>) await Fred.GetCategorySeriesAsync(Id, DateTime.Today, DateTime.Today);
         var count  = series?.Count;
         var call   = 1;
         while (count == CallLimit)
         {
             var more = (List <Series>) await Fred.GetCategorySeriesAsync(Id, DateTime.Today, DateTime.Today, CallLimit, call * CallLimit);
             series.AddRange(more);
             count = more.Count;
             call++;
         }
         return(series);
     }
         );
 }