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)); }