public async Task <IActionResult> GetList([FromQuery] CategoryListQuery request, CancellationToken cancellationToken) { var result = await _mediator.Send(request, cancellationToken); return(Ok(result)); }
public async Task Will_List_Categories_SecondPage() { // arrange using (var context = new BudgetContext(_options)) { context.Add(new Category() { Id = Guid.NewGuid(), Label = "1" }); context.Add(new Category() { Id = Guid.NewGuid(), Label = "2" }); context.Add(new Category() { Id = Guid.NewGuid(), Label = "3", IsArchived = true }); context.Add(new Category() { Id = Guid.NewGuid(), Label = "4" }); await context.SaveChangesAsync(); } var query = new CategoryListQuery() { PerPage = 2, Page = 1, OrderBy = nameof(Category.Label), Descending = true }; using (var context = new BudgetContext(_options)) { // act var service = new CategoryService(context, _mapper); var result = await service.Handle(query, CancellationToken.None); Assert.IsFalse(result.IsEmpty); Assert.AreEqual(3, result.TotalResults); Assert.AreEqual(1, result.Results.Count()); Assert.AreEqual(2, result.TotalPages); Assert.AreEqual("1", result.Results.ElementAt(0).Label); } }
public async Task <PaginatedResult <Category> > Handle(CategoryListQuery request, CancellationToken cancellationToken) { var query = _context.Categories.Where(c => c.IsArchived == false); // if provided, apply filter if (string.IsNullOrEmpty(request.Search) == false) { var labelFilter = request.Search.ToLowerInvariant(); query = query.Where(c => c.Label.ToLowerInvariant() == labelFilter); } var totalCnt = await query.CountAsync(cancellationToken); var pagedQuery = request.Modify(query); var result = await pagedQuery.ToListAsync(cancellationToken); return(new PaginatedResult <Category>(result, request.Page, request.PerPage, totalCnt)); }
public Task <Response <List <Category> > > Categories(CategoryListQuery categoryListQuery) { return(_context.Categories(categoryListQuery.PageSize, categoryListQuery.PageIndex, categoryListQuery.Category)); }
public async Task <IEnumerable <CategoryListResponse> > Handle(CategoryListQuery request, CancellationToken cancellationToken) { var categories = await context.Categories.ToListAsync(cancellationToken); return(mapper.Map <List <CategoryListResponse> >(categories)); }
public async Task <ActionResult <CategoryListQueryViewModel> > List(CategoryListQuery query) { return(CreatedAtAction("List Category", await MediatorService.ExecuteHandler(query))); }
public async Task <IActionResult> Get([FromQuery] CategoryListQuery query) { var model = await this._mediator.Send(query); return(this.Ok(model)); }