コード例 #1
0
ファイル: BookService.cs プロジェクト: wale-A/library
        public SearchResponse <User_BookReponseModel> SearchForBooksAsNonAdmin(SearchBookRequestModel model, int page, int size)
        {
            var availableBooks = this._bookRepo.Find(x => x.IsAvailable);

            availableBooks = searchForBook(model, availableBooks);
            var response = new SearchResponse <User_BookReponseModel> {
                Page = page, TotalCount = availableBooks.Count()
            };

            response.Result = availableBooks.ToList().Skip((response.Page - 1) * size).Take(size).Select(x => x.ToUserModel());
            return(response);
        }
コード例 #2
0
ファイル: BookService.cs プロジェクト: wale-A/library
        private static IQueryable <Book> searchForBook(SearchBookRequestModel model, IQueryable <Book> availableBooks)
        {
            if (!string.IsNullOrWhiteSpace(model.ISBN))
            {
                availableBooks = availableBooks.Where(x => x.ISBN.ToLower() == model.ISBN.ToLower());
            }

            if (!string.IsNullOrWhiteSpace(model.Title))
            {
                availableBooks = availableBooks.Where(x => x.Title.ToLower().Contains(model.Title.ToLower()));
            }

            if (!string.IsNullOrWhiteSpace(model.Author))
            {
                availableBooks = availableBooks.Where(x => x.Author.ToLower().Contains(model.Author.ToLower()));
            }

            return(availableBooks);
        }
コード例 #3
0
ファイル: BooksController.cs プロジェクト: wale-A/library
 public IActionResult GetAllAvailableBooks([FromQuery] SearchBookRequestModel model, int page = 1, int size = 10)
 {
     try
     {
         page = page > 0 ? page : 1;
         size = size > 0 ? size : 20;
         var books = this._bookService.SearchForBooksAsNonAdmin(model, page, size);
         return(Ok(books));
     }
     catch (ArgumentException ex)
     {
         return(BadRequest(ex.Message));
     }
     catch (Exception ex)
     {
         // log exception
         return(StatusCode(500, Constants.ServerErrorMessageText));
     }
 }