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();
        }
Exemple #2
0
 public void UpdateReview(int userID, int bookID, PatchReviewViewModel review)
 {
     try
     {
         reviewRepository.UpdateReview(userID, bookID, review);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #3
0
        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));
            }
        }