Пример #1
0
        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);
        }
Пример #2
0
        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());
        }