コード例 #1
0
        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());
        }
コード例 #2
0
        public MainWindow()
        {
            InitializeComponent();

            Loaded += (s, e) =>
            {
                DataContext = new BookCatalogViewModel();
            };
        }
コード例 #3
0
ファイル: BookService.cs プロジェクト: Burakovivan/PubLibIS
        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);
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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());
        }