コード例 #1
0
        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));
        }
コード例 #2
0
 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();
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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"));
        }