Пример #1
0
        public async Task <IEnumerable <Book> > GetBooksByCountAsync(GetBooksByPageSizeRequestModel requestModel)
        {
            var queryable           = _dataContext.Books.AsQueryable();
            var filterByTitle       = requestModel.FilterOn.Any(x => x.Contains("Title"));
            var filterByDescription = requestModel.FilterOn.Any(x => x.Contains("Description"));
            var filteredData        = queryable.Where(x => (filterByTitle ? x.Title.Contains(requestModel.FilterBy) : true) &&
                                                      (filterByDescription ? x.ShortDescr.Contains(requestModel.FilterBy) : true));

            return(await filteredData.OrderBy(on => on.Title)
                   .Skip((requestModel.PageNumber - 1) * requestModel.PageSize)
                   .Take(requestModel.PageSize)
                   .ToListAsync());
        }
Пример #2
0
        public async Task <IActionResult> GetAll()
        {
            _logger.LogInformation("Get all books");

            //var books = await _bookService.GetBooksAsync();
            var requestModel = new GetBooksByPageSizeRequestModel
            {
                PageNumber = 1,
                PageSize   = 10
            };
            var books = await _bookService.GetBooksByCountAsync(requestModel);

            var bookResponse = _mapper.Map <List <BookResponse> >(books);

            return(Ok(bookResponse));
        }
        public async Task GetBooksByPageSizeTest()
        {
            //  Arrange
            _mockBookService.Setup(b => b.GetBooksByCountAsync(It.IsAny <GetBooksByPageSizeRequestModel>())).Returns(Task.FromResult(It.IsAny <IEnumerable <Domain.Book> >()));
            var sut = new BooksController(_mockLogger.Object, _mockBookService.Object, _mockMapper.Object);

            //  Act
            var requestModel = new GetBooksByPageSizeRequestModel
            {
                PageSize   = 10,
                PageNumber = 1
            };

            var result = await sut.GetBooksByPageSize(requestModel);

            _mockBookService.Verify(s => s.GetBooksByCountAsync(It.IsAny <GetBooksByPageSizeRequestModel>()), Times.Once, "Expected GetBooksAsync to have been called once");
        }
Пример #4
0
        public async Task <IActionResult> GetBooksByPageSize(GetBooksByPageSizeRequestModel requestModel)
        {
            _logger.LogInformation("Get all books");

            var books = await _bookService.GetBooksByCountAsync(requestModel);

            var bookResponse       = _mapper.Map <List <BookResponse> >(books);
            var totalNumberOfBooks = await _bookService.GetTotalNumberOfBooks();

            var getBooksResponse = new GetBooksResponseModel
            {
                BookResponses      = bookResponse,
                TotalNumberOfBooks = totalNumberOfBooks
            };

            return(Ok(getBooksResponse));
        }