public HttpStatusCode AddOrUpdateUserRating([FromBody] Rating item) { if (item == null || item.Score < 1 || item.Score > 5) { return(HttpStatusCode.BadRequest); } if (!_movieContext.Movies.Any(m => m.Id == item.Id) || !_userContext.Users.Any(u => u.Id == item.Id)) { return(HttpStatusCode.NotFound); } var usersRatingForThisMovie = _ratingContext.Ratings.Where(m => m.MovieId == item.MovieId).Where(u => u.UserId == item.UserId); if (!usersRatingForThisMovie.Any()) { _ratingContext.Ratings.Add(item); _ratingContext.SaveChanges(); } else { var oldRating = usersRatingForThisMovie.FirstOrDefault(); _ratingContext.Remove(oldRating); _ratingContext.Ratings.Add(item); _ratingContext.SaveChanges(); } return(HttpStatusCode.OK); }