Пример #1
0
        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,
            });
        }