Пример #1
0
        public async Task <IActionResult> GetList([FromQuery] CategoryListQuery request, CancellationToken cancellationToken)

        {
            var result = await _mediator.Send(request, cancellationToken);

            return(Ok(result));
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
 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)));
 }
Пример #7
0
        public async Task <IActionResult> Get([FromQuery] CategoryListQuery query)
        {
            var model = await this._mediator.Send(query);

            return(this.Ok(model));
        }