public ActionResult EditBook(int id) { Book bookEntity = _bookManager.GetBook(id); var user = UserManager.FindById(bookEntity.CreatedBy); BookActivity bookActivityEntity = _bookManager.GetBookActivity(user.Id, id); BookModel model = Mapper.Map <Book, BookModel>(bookEntity); if (bookActivityEntity != null) { model.IsRead = bookActivityEntity.IsRead; } var genres = _bookManager.GetGenres().ToList(); model.PossibleGenres = new List <SelectListItem>(); foreach (var genre in genres) { model.PossibleGenres.Add(new SelectListItem() { Value = genre.Id.ToString(), Text = genre.Name, Selected = bookEntity.BookGenres.Where(x => x.GenreId == genre.Id).Any(), }); } model.PossibleGenres.OrderBy(x => x.Text); model.AllAuthors = _authorManager.GetAllAuthors(); model.CreatedByName = user.FirstName + " " + user.LastName; return(View(model)); }
public void UpdateBookActivity(BookActivity bookActivity) { if (bookActivity.Id > 0) { var updatable = _bookContext.BookActivities.Find(bookActivity.Id); _bookContext.Entry(updatable).CurrentValues.SetValues(bookActivity); } else { _bookContext.BookActivities.Add(bookActivity); } _bookContext.SaveChanges(); }
public void MarkBookAsRead(int bookId) { var user = UserManager.FindById(User.Identity.GetUserId()); var bookActivity = _bookManager.GetBookActivity(user.Id, bookId); if (bookActivity == null) { bookActivity = new BookActivity(); bookActivity.UserId = user.Id; bookActivity.BookId = bookId; } bookActivity.IsRead = true; _bookManager.UpdateBookActivity(bookActivity); }
public ActionResult Save(BookModel model) { var bookId = model.Id; if (bookId > 0) { List <BookGenre> genres = new List <BookGenre>(); foreach (var selectedGenre in model.PossibleGenres.Where(x => x.Selected)) { genres.Add(new BookGenre() { BookId = bookId, GenreId = Int32.Parse(selectedGenre.Value) }); } var bookEntity = Mapper.Map <BookModel, Book>(model); _bookManager.UpdateBook(bookEntity); var bookActivityEntity = _bookManager.GetBookActivity(model.CreatedBy, model.Id); if (bookActivityEntity != null) { bookActivityEntity.IsRead = model.IsRead; _bookManager.UpdateBookActivity(bookActivityEntity); } } else { var user = UserManager.FindById(User.Identity.GetUserId()); var bookEntity = Mapper.Map <BookModel, Book>(model); bookId = _bookManager.AddNewBook(bookEntity, user); if (model.IsRead) { var bookActivity = new BookActivity(); bookActivity.UserId = user.Id; bookActivity.BookId = bookId; bookActivity.IsRead = model.IsRead; _bookManager.UpdateBookActivity(bookActivity); } foreach (var selectedGenre in model.PossibleGenres.Where(x => x.Selected)) { _bookManager.AddBookGenre(bookId, Int32.Parse(selectedGenre.Value)); } } return(RedirectToAction("Index")); }