Beispiel #1
0
        public override async Task <PagedItems> GetAll(int page, int pageSize, string urlLink)
        {
            var moviesDto           = new List <ICommonDto>();
            var skip                = pageSize * (page - 1);
            var totalNumberOfMovies = await Context.GetMovieCollection().CountAsync(new BsonDocument());

            using (
                var cursor =
                    await Context.GetMovieCollection()
                    .Find(new BsonDocument())
                    .SortBy(x => x.Title)
                    .ThenBy(x => x.Id)
                    .Skip(skip)
                    .Limit(pageSize)
                    .ToCursorAsync())
            {
                while (await cursor.MoveNextAsync())
                {
                    moviesDto.AddRange(cursor.Current.Select(movie => _movieFactory.GetModel <MovieDto>(movie)));
                }
            }
            return(CreatePagedItems(moviesDto, urlLink, page, pageSize, totalNumberOfMovies));
        }