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()); }