public async Task <IActionResult> SearchBooks([FromBody] AvailableBookSearchDto model) { var result = await _availableBookService.SearchAvailableBooks(model); return(new OkObjectResult(result)); }
public async Task <CollectionResult <AvailableBookDto> > SearchAvailableBooks(AvailableBookSearchDto model) { var result = new CollectionResult <AvailableBookDto>(); var entities = _availableBookRepository .Get() .WhereIf(model.Genre != null, item => item.Book.Genre == model.Genre) .WhereIf(model.Condition != null, item => item.Book.Condition == model.Condition) .WhereIf(!string.IsNullOrEmpty(model.SearchString), x => x.Book.Name.ToLower().Contains(model.SearchString.ToLower()) || x.Book.Author.ToLower().Contains(model.SearchString.ToLower())) .Include(x => x.Book) .Include(x => x.ReservedBooks) .AsQueryable(); var searchResult = await entities.ToListAsync(); if (searchResult != null) { result.Items = _mapper.Map <List <AvailableBook>, List <AvailableBookDto> >(searchResult); result.IsSuccessful = true; } return(result); }