public async Task <CollectionResult <BookDto> > SearchBooks(BookSearchDto model) { var result = new CollectionResult <BookDto>(); var entities = _bookRepository .Get() .WhereIf(model.Genre != null, item => item.Genre == model.Genre) .WhereIf(model.Condition != null, item => item.Condition == model.Condition) .WhereIf(!string.IsNullOrEmpty(model.SearchString), x => x.Name.ToLower().Contains(model.SearchString.ToLower()) || x.Author.ToLower().Contains(model.SearchString.ToLower())) .AsQueryable(); var searchResult = await entities.ToListAsyncSafe(); if (searchResult != null) { result.Items = _mapper.Map <List <Book>, List <BookDto> >(searchResult); result.IsSuccessful = true; } return(result); }
public async Task <IActionResult> SearchBooks([FromBody] BookSearchDto model) { var result = await _bookService.SearchBooks(model); return(new OkObjectResult(result)); }