コード例 #1
0
        public async Task <ActionResult <ICollection <BookDetailedViewModel> > > GetBookPage(int pageNo)
        {
            if (pageNo < 1)
            {
                return(BadRequest("Wrong page number."));
            }

            var books = await bookService.GetAll()
                        .Skip((pageNo - 1) * ControllersConstants.ItemsOnPageCount)
                        .Take(ControllersConstants.ItemsOnPageCount)
                        .Include(b => b.Author)
                        .ToListAsync();

            if (books == null)
            {
                return(NotFound($"Page with number '{pageNo}' is empty."));
            }

            var bookViewModels = mapper.Map <ICollection <BookDetailedViewModel> >(books);

            foreach (var bookViewModel in bookViewModels)
            {
                var categories = await bookCategoryService.GetCategoriesAsync(bookViewModel.Id);

                bookViewModel.Categories = mapper.Map <ICollection <CategoryViewModel> >(categories);
            }

            return(Ok(bookViewModels));
        }