Пример #1
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));
        }