Beispiel #1
0
        public async Task <IActionResult> SaveMovie([FromBody] MovieForSave movieForSave)
        {
            var saveRequest = new Services.SaveMovieRequest
            {
                Movie = _mapper.Map <Services.MovieForSave>(movieForSave)
            };
            var saveResponse = await _movieService.SaveMovieAsync(saveRequest);

            var getRequest = new Services.GetMovieByIdRequest
            {
                MovieId = saveResponse.MovieId
            };
            var getResponse = await _movieService.GetMovieByIdAsync(getRequest);

            var movie = _mapper.Map <Movie>(getResponse.Movie);

            return(CreatedAtAction(
                       actionName: nameof(GetMovieById),
                       routeValues: new { movieId = movie.Id },
                       value: movie));
        }
Beispiel #2
0
        public override async Task <Services.SaveMovieResponse> SaveMovie(Services.SaveMovieRequest request, ServerCallContext context)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (!_validator.IsValidMovieForSave(request, out var trailers))
            {
                throw NewInvalidArgumentRpcException("Invalid movie", trailers);
            }

            var movie = _mapper.Map <Movie>(request.Movie);

            var movieId = await _movieDao
                          .SaveMovie(movie)
                          .ConfigureAwait(true);

            return(new Services.SaveMovieResponse
            {
                MovieId = movieId.ToString()
            });
        }