public async Task SetAsync(SetUserMovieRatingRequest setMovieMovieRatingRequest) { Movie movie = await _moviesDomain.GetMovieAsync(setMovieMovieRatingRequest.MovieId); User user = await _usersDomain.GetUserAsync(setMovieMovieRatingRequest.UserId); if (movie == null || user == null) { throw new KeyNotFoundException("Movie or user not found"); } await _ratingRepository.SetAsync(setMovieMovieRatingRequest.UserId, setMovieMovieRatingRequest.MovieId, setMovieMovieRatingRequest.Rating); //Do not await on this operation _moviesDomain.UpdateMovieRatings(setMovieMovieRatingRequest.MovieId); }
public async Task <IActionResult> SetUserRatingAsync([FromBody] SetUserMovieRatingRequest userRatingRequest) { if (string.IsNullOrEmpty(userRatingRequest?.UserId) || string.IsNullOrEmpty(userRatingRequest.MovieId) || userRatingRequest.Rating > 5 || userRatingRequest.Rating < 1) { return(BadRequest()); } try { await _ratingDomain.SetAsync(userRatingRequest); } catch (KeyNotFoundException) { return(NotFound()); } return(Ok()); }