public ReviewBook PutReview(ReviewBook reviewBook) { var _userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var entity = _context.UserBooks.SingleOrDefault(item => item.Id == reviewBook.Id && item.UserId == _userId); if (entity == null) { UserBook newBook = new UserBook { Id = reviewBook.Id, Review = reviewBook.Review, ReviewedOn = DateTime.Now, UserId = _userId }; _context.UserBooks.Add(newBook); } else { entity.Review = reviewBook.Review; entity.ReviewedOn = DateTime.Now; } try { _context.SaveChanges(); } catch (DbUpdateException) { throw; } return(reviewBook); }
public ActionResult Upsert([Deserialize] revBookVars model, string rev) { if (ModelState.IsValid) { var current = unitOfWork.BookReviewRepository.Get(d => d.bookId == model.bid && d.userId == WebSecurity.CurrentUserId).SingleOrDefault(); if (current != null) { current.review = rev; unitOfWork.BookReviewRepository.Update(current); } else { ReviewBook review = new ReviewBook(); review.bookId = model.bid; review.date = DateTime.UtcNow; review.review = rev; review.userId = WebSecurity.CurrentUserId; unitOfWork.BookReviewRepository.Insert(review); } unitOfWork.Save(); return(Json(new { URL = Url.Action("Detail", "Book", new { BId = model.bid }) })); } throw new ModelStateException(this.ModelState); }