public IActionResult BookCatalogByGenre(int?genreId, string selectionType, int page = 1) { BookCatalogViewModel cvm = null; string uri = UriHelper.GetEncodedPathAndQuery(Request); switch (selectionType) { case "text": if (genreId != null || db.Genres.Find(genreId) != null) { IEnumerable <Book> genreTextBooks = db.TextBooks .AsEnumerable() .Where(b => BooksFilteringHelper.GenresContains(b.Genres, genreId)) .OrderBy(b => b.BookName); cvm = new BookCatalogViewModel { Title = "Все книги жанра \"" + db.Genres.Find(genreId).Name + "\"", Books = genreTextBooks .Skip((page - 1) * pageSize) .Take(pageSize), PageInfo = new PageInfo { BaseUrl = PagingHelpers.RemovePageQuery(uri), PageNumber = page, PageSize = pageSize, TotalItems = genreTextBooks.Count() } }; } else { return(NotFound()); } return(View("~/Views/Catalog/TextBookCatalog.cshtml", cvm)); case "audio": if (genreId != null || db.Genres.Find(genreId) != null) { IEnumerable <Book> genreAudioBooks = db.AudioBooks .AsEnumerable() .Where(b => BooksFilteringHelper.GenresContains(b.Genres, "Книги о программировании")) .OrderBy(b => b.BookName); cvm = new BookCatalogViewModel { Title = "Все аудиокниги жанра \"" + db.Genres.Find(genreId).Name + "\"", Books = genreAudioBooks .Skip((page - 1) * pageSize) .Take(pageSize), PageInfo = new PageInfo { BaseUrl = PagingHelpers.RemovePageQuery(uri), PageNumber = page, PageSize = pageSize, TotalItems = genreAudioBooks.Count() } }; } else { return(NotFound()); } return(View("~/Views/Catalog/AudioBookCatalog.cshtml", cvm)); } return(NotFound()); }
public MainWindow() { InitializeComponent(); Loaded += (s, e) => { DataContext = new BookCatalogViewModel(); }; }
public BookCatalogViewModel GetBookCatalogViewModel(int skip, int take) { if (take == 0) { take = db.Books.Count(); } IEnumerable <GetBookResponseModel> books = db.Books.GetBookResponseModelList(skip, take); var result = new BookCatalogViewModel { Books = mapper.Map <IEnumerable <BookViewModelSlim> >(books), Skip = skip, IsSeeMore = books.Count() < db.Books.Count(), HasNextPage = db.Books.Count() > skip + take }; return(result); }
public IActionResult BookCatalogBySearch(string search, string selectionType, int page = 1) { BookCatalogViewModel cvm = null; string uri = UriHelper.GetEncodedPathAndQuery(Request); switch (selectionType) { case "text": IEnumerable <Book> textBooks = db.TextBooks .AsEnumerable() .Where(b => BooksFilteringHelper.IsSearchedBook(b, search)) .OrderBy(b => b.BookName); cvm = new BookCatalogViewModel { Title = "Все книги", Books = textBooks .Skip((page - 1) * pageSize) .Take(pageSize), PageInfo = new PageInfo { BaseUrl = PagingHelpers.RemovePageQuery(uri), PageNumber = page, PageSize = pageSize, TotalItems = textBooks.Count() } }; return(View("~/Views/Catalog/TextBookCatalog.cshtml", cvm)); case "audio": IEnumerable <Book> audioBooks = db.AudioBooks .AsEnumerable() .Where(b => BooksFilteringHelper.IsSearchedBook(b, search)) .OrderBy(b => b.BookName); cvm = new BookCatalogViewModel { Title = "Все аудиокниги", Books = audioBooks .Skip((page - 1) * pageSize) .Take(pageSize), PageInfo = new PageInfo { BaseUrl = PagingHelpers.RemovePageQuery(uri), PageNumber = page, PageSize = pageSize, TotalItems = audioBooks.Count() } }; return(View("~/Views/Catalog/AudioBookCatalog.cshtml", cvm)); } return(NotFound()); }
public IActionResult BookCatalogBySet(string setName, string selectionType, int page = 1) { BookCatalogViewModel cvm = null; string uri = UriHelper.GetEncodedPathAndQuery(Request); switch (selectionType) { case "text": switch (setName) { case "novelty": IEnumerable <Book> noveltyTextBooks = db.TextBooks .AsEnumerable() .Where(b => BooksFilteringHelper.BookIsNew(b, 30)) .OrderBy(b => b.BookName); cvm = new BookCatalogViewModel { Title = "Все новинки", Books = noveltyTextBooks .Skip((page - 1) * pageSize) .Take(pageSize), PageInfo = new PageInfo { BaseUrl = PagingHelpers.RemovePageQuery(uri), PageNumber = page, PageSize = pageSize, TotalItems = noveltyTextBooks.Count() } }; break; } if (cvm == null) { return(NotFound()); } return(View("~/Views/Catalog/TextBookCatalog.cshtml", cvm)); case "audio": switch (setName) { case "novelty": IEnumerable <Book> noveltyAudioBooks = db.AudioBooks .AsEnumerable() .Where(b => BooksFilteringHelper.BookIsNew(b, 30)) .OrderBy(b => b.BookName); cvm = new BookCatalogViewModel { Title = "Все новинки", Books = noveltyAudioBooks .Skip((page - 1) * pageSize) .Take(pageSize), PageInfo = new PageInfo { BaseUrl = PagingHelpers.RemovePageQuery(uri), PageNumber = page, PageSize = pageSize, TotalItems = noveltyAudioBooks.Count() } }; break; } if (cvm == null) { return(NotFound()); } return(View("~/Views/Catalog/AudioBookCatalog.cshtml", cvm)); } return(NotFound()); }