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