Example #1
0
        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);
        }
Example #2
0
        public async Task <IActionResult> SearchBooks([FromBody] BookSearchDto model)
        {
            var result = await _bookService.SearchBooks(model);

            return(new OkObjectResult(result));
        }