private void BuildViewModel(Sitecore.Data.Items.Item contextItem) { _bpvm = new BookPageViewModel(); _bpvm.PrevBtnText = Translate.Text("Previous"); _bpvm.NextBtnText = Translate.Text("Next"); _bpvm.BookUrl = Utilities.SitecoreHelper.FieldMethods.GetFileUrl(contextItem, "Book File"); }
public async Task <BookPageViewModel> GetBooksAsync() { var result = new BookPageViewModel(); var books = await _dbContext.Books.Include(t => t.Pictures).ToListAsync(); result.Books = books?.ToModel(); return(result); }
public async Task <IActionResult> BooksCollection(string search, SortState sortOrder = SortState.DateDesc, string view = "list", int page = 1) { ViewData["SearchParam"] = search; ViewData["ViewType"] = view; int pageSize = view == "list" ? 10 : 20; IQueryable <Book> source = !string.IsNullOrEmpty(search) ? source = _db.Books .Include(a => a.Author) .Include(a => a.Genre) .Include(a => a.Users) .Include(a => a.Comments) .Where(a => a.Name.Contains(search)) : _db.Books .Include(a => a.Author) .Include(a => a.Genre) .Include(a => a.Users) .Include(a => a.Comments); var count = await source.CountAsync(); var books = await source.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync(); books = sortOrder switch { SortState.BookAsc => books.OrderBy(a => a.Name).ToList(), SortState.BookDesc => books.OrderByDescending(a => a.Name).ToList(), SortState.AuthorAsc => books.OrderBy(a => a.Author.FullName).ToList(), SortState.AuthorDesc => books.OrderByDescending(a => a.Author.FullName).ToList(), SortState.YearAsc => books.OrderBy(a => a.Year).ToList(), SortState.YearDesc => books.OrderByDescending(a => a.Year).ToList(), SortState.GenreAsc => books.OrderBy(a => a.Genre.Name).ToList(), SortState.GenreDesc => books.OrderByDescending(a => a.Genre.Name).ToList(), SortState.DateAsc => books.OrderBy(a => a.AdditionDate).ToList(), _ => books.OrderByDescending(a => a.AdditionDate).ToList() }; PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); BookPageViewModel viewModel = new BookPageViewModel { PageViewModel = pageViewModel, Book = books, SortViewModel = new SortViewModel(sortOrder) }; return(View(viewModel)); }
public async Task <IActionResult> List(int?id, int page = 1) { int pageSize = 10; IQueryable <Book> source = _db.Books.Include(a => a.Author).Include(a => a.Users).Include(a => a.Comments).Where(g => g.GenreId == id).OrderByDescending(i => i.AdditionDate); var count = await source.CountAsync(); var books = await source.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync(); string name = await _db.Genres.Where(i => i.Id == id).Select(i => i.Name).FirstOrDefaultAsync(); ViewData["GenreName"] = name; PageViewModel pageViewModel = new PageViewModel(count, page, pageSize); BookPageViewModel viewModel = new BookPageViewModel { PageViewModel = pageViewModel, Book = books }; return(View(viewModel)); }
public BooksPage() { InitializeComponent(); DataContext = new BookPageViewModel(); }