public void UpdateReview(int userID, int bookID, PatchReviewViewModel review) { // Check if user exists if (!db.Users.Where(u => u.ID == userID).Any()) { throw new NotFoundException(userNotFoundMessage); } // Check if book exists if (!db.Books.Where(b => b.ID == bookID).Any()) { throw new NotFoundException(bookNotFoundMessage); } // Get entity from DB var reviewEntity = db.Reviews.Where(r => r.UserID == userID && r.BookID == bookID).SingleOrDefault(); // Check if review exists if (reviewEntity == null) { throw new NotFoundException(reviewNotFoundMessage); } // Change rating if (review.Rating.HasValue) { reviewEntity.Rating = review.Rating.Value; } db.Reviews.Update(reviewEntity); db.SaveChanges(); }
public void UpdateReview(int userID, int bookID, PatchReviewViewModel review) { try { reviewRepository.UpdateReview(userID, bookID, review); } catch (Exception ex) { throw ex; } }
public IActionResult UpdateReview(int userID, int bookID, [FromBody] PatchReviewViewModel review) { if (!ModelState.IsValid) { var error = new ErrorDTO { Code = 412, Message = "Validation error. Invalid input" }; return(StatusCode(error.Code, error)); } try { reviewService.UpdateReview(userID, bookID, review); return(NoContent()); } catch (NotFoundException ex) { var error = new ErrorDTO { Code = 404, Message = ex.Message }; return(StatusCode(error.Code, error)); } catch (Exception ex) { var error = new ErrorDTO { Code = 500, Message = ex.Message }; return(StatusCode(error.Code, error)); } }