public async Task <IActionResult> PutMovie(int id, MoviePutDTO moviePutDTO) { if (moviePutDTO == null) { throw new ArgumentNullException(nameof(moviePutDTO)); } if (id != moviePutDTO.Id) { return(BadRequest()); } var movieResult = await _movieRepository.PutMovie(id, moviePutDTO).ConfigureAwait(false); if (movieResult == null) { return(NotFound()); } return(NoContent()); }
public async Task <MoviePutDTO> PostMovie(MoviePutDTO moviePostDTO) { if (moviePostDTO == null) { throw new ArgumentNullException(nameof(moviePostDTO)); } var movieResult = _context.Movies.Add(new Movie() { Title = moviePostDTO.Title, Description = moviePostDTO.Description, ReleaseDate = moviePostDTO.ReleaseDate, DirectorId = moviePostDTO.DirectorId, Poster = moviePostDTO.Poster }); await _context.SaveChangesAsync().ConfigureAwait(false); moviePostDTO.Id = movieResult.Entity.Id; return(moviePostDTO); }
public async Task <MoviePutDTO> PutMovie(int id, MoviePutDTO moviePutDTO) { if (moviePutDTO == null) { throw new ArgumentNullException(nameof(moviePutDTO)); } // DTO objects don't exist in the context class and won't be recognized by EF so the code below will not work!!! //_context.Entry(address).State = EntityState.Modified; try { Movie movie = await _context.Movies.FirstOrDefaultAsync(a => a.Id == id).ConfigureAwait(false); movie.Title = moviePutDTO.Title; movie.Description = moviePutDTO.Description; movie.ReleaseDate = moviePutDTO.ReleaseDate; movie.DirectorId = moviePutDTO.DirectorId; movie.Poster = moviePutDTO.Poster; await _context.SaveChangesAsync().ConfigureAwait(false); } catch (DbUpdateConcurrencyException) { if (!MovieExists(id)) { return(null); } else { throw; } } return(moviePutDTO); }
public async Task <ActionResult <MovieDTO> > PostMovie(MoviePutDTO moviePostDTO) { var movieResult = await _movieRepository.PostMovie(moviePostDTO).ConfigureAwait(false); return(CreatedAtAction("GetMovie", new { id = movieResult.Id }, movieResult)); }