private IQueryable <Domain.Aggregates.Product> BuildQuery(ProductsByFilter request) { var query = _dbContext.Products.AsNoTracking() .Skip(request.Offset) .Take(request.Limit); if (!string.IsNullOrWhiteSpace(request.Search)) { query = query.Where(x => x.Code.Contains(request.Search) || x.Name.Contains(request.Search)); } return(query); }
protected override async Task <IEnumerable <Product> > HandleCore(ProductsByFilter request) { var query = BuildQuery(request); var result = query.Select(p => new Product { Image = p.Image, Code = p.Code, Name = p.Name, Id = p.Id, Price = p.Price, PriceApproved = p.PriceApproved, LastUpdated = p.LastUpdated }).ToList(); return(result); }
public async Task <IActionResult> Get([FromQuery] ProductsByFilter query) { var result = await _queryProductsByFilter.Handle(query); return(Ok(result)); }