コード例 #1
0
        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);
        }