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