private async Task UpdateResource()
        {
            var movieToUpdate = new MovieForUpdate()
            {
                Title       = "Pulp Fiction",
                Description = "The movie with Zed.",
                DirectorId  = Guid.Parse("d28888e9-2ba9-473a-a40f-e38cb54f9b35"),
                ReleaseDate = new DateTimeOffset(new DateTime(1992, 9, 2)),
                Genre       = "Crime, Drama"
            };

            var serializedMovieToUpdate = JsonConvert.SerializeObject(movieToUpdate);

            var request = new HttpRequestMessage(HttpMethod.Put,
                                                 "api/movies/5b1c2b4d-48c7-402a-80c3-cc796ad49c6b");

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Content = new StringContent(serializedMovieToUpdate);
            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var response = await _httpClient.SendAsync(request);

            response.EnsureSuccessStatusCode();

            var content = await response.Content.ReadAsStringAsync();

            var updatedMovie = JsonConvert.DeserializeObject <Movie>(content);
        }
Example #2
0
        public Task UpdateMovie(long movieId, MovieForUpdate movieForUpdate)
        {
            if (movieForUpdate is null)
            {
                throw new ArgumentNullException(nameof(movieForUpdate));
            }

            return(UpdateMovie());

            async Task UpdateMovie()
            {
                var movieFromDb = await _context
                                  .Movies
                                  .FirstOrDefaultAsync(movie => movie.MovieId == movieId)
                                  .ConfigureAwait(false);

                if (movieFromDb == null)
                {
                    throw new EntityNotFoundException($"A movie having id '{movieId}' could not be found");
                }

                movieFromDb.Title  = movieForUpdate.Title;
                movieFromDb.Genres = Genre.NormalizeGenres(movieForUpdate.Genres);

                await _context.SaveChangesAsync().ConfigureAwait(false);
            }
        }
Example #3
0
        public async Task UpdateResource()
        {
            var movieToUpdate = new MovieForUpdate
            {
                Title       = "Pulp Fiction",
                Description = "Some desc",
                DirectorId  = Guid.Parse("69cb27e5-46ac-4434-a462-cf2826cd61aa"),
                ReleaseDate = new DateTimeOffset(new DateTime(1992, 9, 2)),
                Genre       = "Crime, Drama"
            };
            var          serializedMovieToUpdate = JsonConvert.SerializeObject(movieToUpdate);
            const string url = "api/movies/5b1c2b4d-48c7-80c3-cc796ad49c6b";

            var request = new HttpRequestMessage(HttpMethod.Put, url);

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(appJson));
            request.Content = new StringContent(serializedMovieToUpdate);
            request.Content.Headers.ContentType = new MediaTypeHeaderValue(appJson);

            var response = await httpClient.SendAsync(request);

            var content = await response.Content.ReadAsStringAsync();

            var updatedMovie = JsonConvert.DeserializeObject <Movie>(content);

            Debug.WriteLine(updatedMovie);
        }
 public static UpdateMovieCommand ConvertToCommand(this MovieForUpdate movie, Guid id)
 {
     return(new UpdateMovieCommand
     {
         Id = id,
         Title = movie.Title,
         Description = movie.Description,
         Genre = movie.Genre,
         YearReleased = movie.YearReleased
     });
 }
Example #5
0
        public async Task <Movie> PartiallyUpdateMovieAsync(Movie movieEntity, MovieForUpdate movieForUpdate)
        {
            Mapper.Map(movieForUpdate, movieEntity);

            if (!await SaveChangesAsync())
            {
                throw new BadRequestException($"Something went wrong. Could not update movie with ID: {movieEntity.Id}");
            }

            // return the updated movie, after mapping it
            return(_mapper.Map <Movie>(movieEntity));
        }
Example #6
0
        public async Task <Movie> UpdateMovieAsync(Guid movieId, MovieForUpdate movieToUpdate)
        {
            var movieEntity = await _context.Movies.FirstOrDefaultAsync(m => m.Id == movieId);

            if (movieEntity == null)
            {
                throw new NotFoundException(nameof(Movie), movieId);
            }

            // map the inputted object into the movie entity this ensures properties will get updated
            _mapper.Map(movieToUpdate, movieEntity);

            if (!await SaveChangesAsync())
            {
                throw new BadRequestException($"Something went wrong. Could not update movie with ID: {movieId}");
            }

            // return the updated movie, after mapping it
            return(_mapper.Map <Movie>(movieEntity));
        }
Example #7
0
        public async Task PutResponse()
        {
            var movieToUpdate = new MovieForUpdate()
            {
                Title       = "Pulp Fiction",
                Description = "The movie with Zed.",
                DirectorId  = Guid.Parse("d28888e9-2ba9-473a-a40f-e38cb54f9b35"),
                ReleaseDate = new DateTimeOffset(new DateTime(1992, 9, 2)),
                Genre       = "Crime, Drama"
            };

            var parsedMovie = JsonConvert.SerializeObject(movieToUpdate);
            var response    = await _httpClient.PutAsync("api/movies/5b1c2b4d-48c7-402a-80c3-cc796ad49c6b",
                                                         new StringContent(parsedMovie, Encoding.UTF8, "application/json"));

            response.EnsureSuccessStatusCode();

            var content = await response.Content.ReadAsStringAsync();

            var movieUpdated = JsonConvert.DeserializeObject <Movie>(content);
        }
 public MovieForUpdateValidatorTest()
 {
     _validator = new MovieForUpdateValidator();
     _movie     = DataStructures.ValidMovieForUpdate;
 }
        public async Task <IActionResult> UpdateMovie([FromRoute] long movieId, [FromBody] MovieForUpdate movie)
        {
            await _movieService.UpdateMovie(movieId, movie);

            return(NoContent());
        }
 public async Task <IActionResult> UpdateMovieAsync(Guid id, [FromBody] MovieForUpdate movie, CancellationToken cancellationToken)
 => await _processor.ProcessAsync(movie.ConvertToCommand(id), cancellationToken);
Example #11
0
        public async Task <IActionResult> UpdateMovie(Guid movieId, MovieForUpdate movieForUpdate)
        {
            var _movie = await _moviesRepository.UpdateMovieAsync(movieId, movieForUpdate);

            return(Ok(_movie));
        }