public async Task<IEnumerable<object>> GetAllAsync(BookQueryParamsDto queryParams) { var query = _bookRepo.GetAll() .Where(b => queryParams.IsAvailable == null || b.IsAvailable == queryParams.IsAvailable) .Where(b => queryParams.Author == null || b.Author.Name.Contains(queryParams.Author)) .Where(b => queryParams.Genre == null || b.Genre.Name.Contains(queryParams.Genre)) .Where(b => queryParams.Year == null || b.YearOfPublishing == queryParams.Year) .ProjectTo<BookReadDto>(_mapper.ConfigurationProvider) .OrderByDynamic(queryParams.PropertyNameToOrder, queryParams.Ascending); if (!string.IsNullOrEmpty(queryParams.PropertyNameToGroup)) { return (await query .ToListAsync()) .GroupByDynamic(queryParams.PropertyNameToGroup); } return await query.ToListAsync(); }
public async Task <ActionResult <IEnumerable <object> > > GetAll([FromQuery] BookQueryParamsDto queryParams) { return(Ok(await _bookService.GetAllAsync(queryParams))); }