예제 #1
0
        public IActionResult AddRating(Guid movieId, [FromBody]  RatingCreationDto rating)
        {
            if (rating == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var user = (from users in _moviesRepository.GetUsers()
                        where users.Id == rating.UserId
                        select users).FirstOrDefault();

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

            var movie = (from _movies in _moviesRepository.GetMovies()
                         where _movies.Id == movieId
                         select _movies).FirstOrDefault();

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

            var oldRating = (from _ratings in _moviesRepository.GetRatings()
                             where _ratings.MovieId == movieId && _ratings.UserId == rating.UserId
                             select _ratings).SingleOrDefault();

            if (oldRating != null)
            {
                oldRating.UserRating = rating.UserRating;
                oldRating.RatedOn    = DateTime.Today;
                _moviesRepository.UpdateRating(oldRating);
                return(Ok());
            }

            var newRating = new Rating()
            {
                UserRating = rating.UserRating,
                UserId     = rating.UserId,
                RatedOn    = DateTime.Today,
                MovieId    = movie.Id
            };

            _moviesRepository.AddRating(newRating);

            return(Ok());
        }