public Task <PagedCollection <Post> > Execute(PagedCollectionParameters parameters) { var collectionFactory = new PagedCollectionFactory <Post>(PlaceholderLink.ToCollection(_endpoint)); return(collectionFactory.CreateFrom( _context.Posts.ProjectToType <Post>(), parameters.Offset ?? _defaultPagingParameters.Offset.Value, parameters.Limit ?? _defaultPagingParameters.Limit.Value)); }
public async Task <IActionResult> GetPosts(string id, PagedCollectionParameters parameters) { var query = new GetPostsByUserQuery(_context, _defaultPagingOptions, Endpoint); var posts = await query.Execute(id, parameters); return(posts == null ? new NotFoundResult() as ActionResult : new ObjectResult(posts)); }
public UsersController( BeautifulContext context, IOptions <PagedCollectionParameters> defaultPagingOptions, TypeAdapterConfig typeAdapterConfig) { _context = context; _defaultPagingOptions = defaultPagingOptions.Value; _typeAdapterConfig = typeAdapterConfig; }
public async Task <IActionResult> Get(PagedCollectionParameters parameters) { var getAllQuery = new GetAllUsersQuery(_context, _defaultPagingOptions, Endpoint); var results = await getAllQuery.Execute(parameters); // Attach form definitions for discoverability results.Forms = new[] { Form.FromModel <UserCreateModel>(Endpoint, "POST", "create-form") }; return(new ObjectResult(results)); }
public GetAllPostsQuery( BeautifulContext context, PagedCollectionParameters defaultPagingParameters, TypeAdapterConfig typeAdapterConfig, string endpoint) { _context = context; _defaultPagingParameters = defaultPagingParameters; _typeAdapterConfig = typeAdapterConfig; _endpoint = endpoint; }
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)); }
public GetAllUsersQuery(BeautifulContext context, PagedCollectionParameters defaultPagingParameters, string endpoint) { _context = context; _defaultPagingParameters = defaultPagingParameters; _endpoint = endpoint; }
public UsersController(BeautifulContext context, IOptions <PagedCollectionParameters> defaultPagingOptions) { _context = context; _defaultPagingOptions = defaultPagingOptions.Value; }