public async Task <IActionResult> UpdateAsync(int movieId, int ratingId, [FromBody] UpdateMovieRatingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var movie = await _movieRepository.FindByAsync(movieId); if (movie == null) { return(NotFound($"Coulnd't find any movie with id {movieId}")); } var movieRating = await _movieRatingRepository.FindByAsync(ratingId, model.UserName); if (movieRating == null || movieRating.MovieId != movie.Id) { return(NotFound($"Coulnd't find any movie rating with id {ratingId} and user name {model.UserName}")); } try { movieRating = await _movieRatingRepository.UpdateAsync(movieRating, model.Rating.Value); return(Ok(new UpdateMovieRatingResult { MovieId = movieRating.MovieId, RatingId = movieRating.Id, Rating = movieRating.Rating })); } catch (Exception ex) { //Log Exception return(StatusCode(StatusCodes.Status500InternalServerError)); } }