Esempio n. 1
0
        public IActionResult UpdateAddUserRating([FromBody] UserRating rating)
        {
            //check user exists
            UserRating user = _moviesApiContext.UserRatings
                              .FirstOrDefault(u => rating.UserId != null && u.UserId == rating.UserId);

            if (user == null)
            {
                return(NotFound());
            }

            //check movie exists
            MovieItem movie = _moviesApiContext.Movies.FirstOrDefault(m => m.Id == rating.MovieId);

            if (movie == null)
            {
                return(NotFound());
            }

            //check rating is within correct range
            if (rating.Rating < 1 || rating.Rating > 5)
            {
                return(BadRequest());
            }

            //add or update user rating
            UserRating userRating = _moviesApiContext.UserRatings
                                    .FirstOrDefault(u => u.UserId == rating.UserId && u.MovieId == rating.MovieId);

            if (userRating == null)
            {
                _moviesApiContext.UserRatings.Add(rating);
                _moviesApiContext.SaveChanges();
            }
            else
            {
                userRating.Rating = rating.Rating;
                _moviesApiContext.SaveChanges();
            }

            return(new NoContentResult());
        }