public async Task <PagedRefLists> GetFavoriteRefListsAsync( long ownerId, PageCondition pageCondition, FavoriteRefListSortKind sort ) { var query = _refsContext.Favorites. Include("RefList").Include("RefList.Author").Include("RefList.TagUses.Tag").Include("RefList.Statistics").AsNoTracking(). Where(f => f.OwnerId == ownerId && f.Kind == FavoriteKind.RefList); var count = await query.CountAsync(); query = QueryUtil.AppendQueryForFavoriteRefListSort(query, sort); query = query.Skip(pageCondition.PageIndex * pageCondition.PageSize); query = query.Take(pageCondition.PageSize); var storedFavs = await query.ToArrayAsync(); return(new PagedRefLists() { PageIndex = pageCondition.PageIndex, PageCount = IndexUtil.GetPageCount(count, pageCondition.PageSize), RefLists = storedFavs.Select(f => f.RefList), AllRefListCount = count, }); }