public BookDetailsModel GetBookDetails(string userId, long id) { var book = _context.Books.Include(b => b.Authors).Include(b => b.TagConnectors).ThenInclude(tc => tc.Tag).Include(b => b.FavouriteConnectors).First(b => b.Id == id); var result = new BookDetailsModel { AuthorsNames = book.Authors.Select(a => a.Name).ToList(), Cover = book.CoverId, DatePublished = book.DatePublished, Description = book.Description, FavouriteCount = book.FavouriteConnectors.Count, Id = book.Id, Rateing = book.ReviewScore, ReviewCount = _context.Reviews.Where(r => r.BookId == id && r.Description.Length > 1).Count(), Tags = book.TagConnectors.Select(tc => tc.Tag.Label).ToList(), Title = book.Title }; result.Reviews = _context.Reviews.Include(r => r.User).Where(r => r.BookId == id && r.Description.Length > 1).OrderByDescending(r => r.Date).Take(10).Select(Mapper.Mapper.MapReviewToModelExpression()).ToList(); var myReview = _context.Reviews.FirstOrDefault(r => r.UserId == userId && r.BookId == id); if (myReview != null) { result.MyReview = _mapper.MapReviewEntityToModel(myReview); } else { result.MyReview = new ReviewModel { Date = DateTime.Now, BookId = id, UserId = userId, BookTitle = result.Title }; } return(result); }
public async Task <IActionResult> Add() { var authors = await this.authorService.List(); var authorList = authors .ToList() .Select(a => new SelectListItem { Value = $"{a.Id}", Text = $"{a.Author}" }) .ToList(); var categories = await this.categoryService.All(); var categoryList = categories .ToList() .Select(c => new SelectListItem { Value = $"{c.Id}", Text = $"{c.Name}" }) .ToList(); var booksModel = new BookDetailsModel { Authors = authorList, CategoryList = categoryList, ReleaseDate = DateTime.Now }; return(View(booksModel)); }
public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var viewModel = new BookDetailsModel(); viewModel.Books = await _context.BOOKS .Include(b => b.Genre) .Include(b => b.Publisher) .FirstOrDefaultAsync(m => m.BookID == id); viewModel.BookCopies = await _context.BOOKCOPIES .Where(bc => bc.BookID == id) .Include(bc => bc.Retailer) .ToListAsync(); //Get Book Copies List if (viewModel == null) { return(NotFound()); } return(View(viewModel)); }
public async Task <IActionResult> Add(BookDetailsModel model) { if (!ModelState.IsValid) { return(RedirectToAction(nameof(Add))); } var authorExists = await this.authorService.Exists(model.AuthorId); if (!authorExists) { ModelState.AddModelError(nameof(BookDetailsModel.AuthorId), "Author does not exist."); return(View(model)); } var id = await this.bookService.Create( model.Title.Trim(), model.Description.Trim(), model.Price, model.Copies, model.Edition, model.AgeRestriction, model.ReleaseDate, model.AuthorId, model.CategoriesId); return(RedirectToAction(nameof(All))); }
public IHttpActionResult EditBook(BookDetailsModel book) { if (!ModelState.IsValid) { return(BadRequest()); } var bookId = _bookService.UpdateBook(book); return(Ok(bookId)); }
public BookDetailsViewModel(BookViewModel bookViewModel) { _book = new BookDetailsModel(bookViewModel); LikeUnlikeBookCommand = new Tools.RelayCommand((arg) => { LikeUnlike(); }); BackCommand = new Tools.RelayCommand((arg) => { Tools.NavigationController.GetInstance().TryGoBack(); }); CheckIsFav(); }
// GET: Books/Details/5 public ActionResult Details(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Books books = db.Books.Find(id); if (books == null) { return(HttpNotFound()); } var viewModel = new BookDetailsModel(); viewModel.Book = new Books { id = books.id, title = books.title, year = books.year, description = books.description, cover = books.cover }; var details = RelatedData(id); viewModel.Details = details; var user_books = db.User_Books.ToList(); string user_id = null; if (User.Identity.IsAuthenticated) { user_id = User.Identity.GetUserId(); foreach (User_Books ub in user_books) { if (user_id == ub.UserId && id == ub.BookId) { viewModel.isFavorite = ub.isFavorite; viewModel.isOnWishList = ub.isOnWishList; viewModel.isRead = ub.isRead; viewModel.rating = ub.rating; viewModel.comment = ub.comment; } } } return(View(viewModel)); }
public ActionResult Edit(BookDetailsModel editedBook) { if (ModelState.IsValid) { var books = db.Books.Find(editedBook.Book.id); books.title = editedBook.Book.title; books.year = editedBook.Book.year; books.description = editedBook.Book.description; if (editedBook.cover != null) { books.cover = editedBook.cover.FileName; editedBook.cover.SaveAs(HttpContext.Server.MapPath(ConfigurationManager.AppSettings["bookCovers"]) + books.cover); } string user_id = null; if (User.Identity.IsAuthenticated) { user_id = User.Identity.GetUserId(); foreach (var item in db.User_Books) { if (item.BookId == editedBook.Book.id && item.UserId == user_id) { db.Entry(item).State = EntityState.Deleted; } } var user_books = new User_Books() { UserId = user_id, BookId = editedBook.Book.id, isFavorite = editedBook.isFavorite, isOnWishList = editedBook.isOnWishList, isRead = editedBook.isRead, rating = editedBook.rating, comment = editedBook.comment }; db.User_Books.Add(user_books); } db.Entry(books).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(editedBook)); }
public static List <BookDetailsModel> GetBookDetailsModel(IReadOnlyList <BookOutput> books) { List <BookDetailsModel> booksModel = new List <BookDetailsModel>(); foreach (var bk in books) { var book = new BookDetailsModel( bk.BookId, bk.Price, bk.ISBN, bk.Title, GetAuthorDetailsModel(bk.Authors) ); booksModel.Add(book); } return(booksModel); }
public bool UpdateBook(BookDetailsModel bookUpdate) { throw new NotImplementedException(); }
public int AddBook(BookDetailsModel bookAdd) { throw new NotImplementedException(); }
// GET: Books/Edit/5 public ActionResult Edit(long?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Books books = db.Books.Find(id); if (books == null) { return(HttpNotFound()); } var editModel = new BookDetailsModel(); editModel.Book = new Books { id = books.id, title = books.title, year = books.year, description = books.description, cover = books.cover }; var details = RelatedData(id); var user_books = db.User_Books.ToList(); int rate = 0; string user_id = null; if (User.Identity.IsAuthenticated) { user_id = User.Identity.GetUserId(); foreach (User_Books ub in user_books) { if (user_id == ub.UserId && id == ub.BookId) { editModel.isFavorite = ub.isFavorite; editModel.isOnWishList = ub.isOnWishList; editModel.isRead = ub.isRead; editModel.rating = ub.rating; editModel.comment = ub.comment; rate = ub.rating; } } } var RatingList = new List <int>(); for (int i = 0; i < 11; i++) { RatingList.Add(i); } ViewBag.Rating = new SelectList(RatingList, null, null, rate); editModel.Details = details; return(View(editModel)); }