示例#1
0
        public Task <PagedCollection <User> > Execute(PagedCollectionParameters parameters)
        {
            var collectionFactory = new PagedCollectionFactory <User>(PlaceholderLink.ToCollection(_endpoint));

            return(collectionFactory.CreateFrom(
                       _context.Users.ProjectToType <User>(_typeAdapterConfig),
                       parameters.Offset ?? _defaultPagingParameters.Offset.Value,
                       parameters.Limit ?? _defaultPagingParameters.Limit.Value));
        }
        public async Task <PagedCollection <Post> > Execute(string userId, PagedCollectionParameters parameters)
        {
            var meta = PlaceholderLink.ToCollection(_endpoint, values: new { id = userId, link = PostsController.Endpoint });
            var collectionFactory = new PagedCollectionFactory <Post>(meta);

            var user = await _context.Users
                       .Where(x => x.Id == userId)
                       .SingleOrDefaultAsync();

            if (user == null)
            {
                return(null);
            }

            var query = _context.Posts
                        .Where(o => o.UserId == userId)
                        .ProjectToType <Post>(_typeAdapterConfig);

            return(await collectionFactory.CreateFrom(
                       query,
                       parameters.Offset ?? _defaultPagingParameters.Offset.Value,
                       parameters.Limit ?? _defaultPagingParameters.Limit.Value));
        }