internal Category(Fred fred) : base(fred)
{
_childern = new Lazy <IEnumerable <Category> >(() => Fred.GetCategoryChildern(Id));
_parent = new Lazy <Category>(() => Id == 0 ? this : Fred.GetCategory(ParentId));
_related = new Lazy <IEnumerable <Category> >(() => Fred.GetCategoryRelated(Id));
_series = new Lazy <List <Series> >(
() =>
{
var series = (List <Series>)Fred.GetCategorySeries(Id, DateTime.Today, DateTime.Today);
var count = series?.Count;
var call = 1;
while (count == CallLimit)
{
var more = (List <Series>)Fred.GetCategorySeries(Id, DateTime.Today, DateTime.Today, CallLimit, call * CallLimit);
series.AddRange(more);
count = more.Count;
call++;
}
return(series);
}
);
}