public async Task <MoviePostDTO> PostMovie(MoviePostDTO moviePostDTO) { if (moviePostDTO == null) { throw new ArgumentNullException(nameof(moviePostDTO)); } var movie = _context.Movies.Add(new Movie() { Name = moviePostDTO.Name, Director = moviePostDTO.Director, Aired = moviePostDTO.Aired, Duration = moviePostDTO.Duration, Image = moviePostDTO.Image, MovieGenres = null, MovieActors = null }); foreach (MovieActorDTO movieActorDTO in moviePostDTO.MovieActorDTOs) { Actor actor = _context.Actors.Find(movieActorDTO.ActorId); _context.MovieActors.Add(new MovieActor() { MovieId = movie.Entity.Id, Movie = movie.Entity, ActorId = actor.Id, Actor = actor }); } foreach (MovieGenreDTO movieGenreDTO in moviePostDTO.MovieGenreDTOs) { Genre genre = _context.Genres.Find(movieGenreDTO.GenreId); _context.MovieGenres.Add(new MovieGenre() { MovieId = movie.Entity.Id, Movie = movie.Entity, GenreId = genre.Id, Genre = genre }); } await _context.SaveChangesAsync().ConfigureAwait(false); moviePostDTO.Id = movie.Entity.Id; return(moviePostDTO); }
public async Task <ActionResult <MoviePostDTO> > PostMovie(MoviePostDTO MoviePostDTO) { var MovieResult = await _movieRepository.PostMovie(MoviePostDTO).ConfigureAwait(false); return(CreatedAtAction("GetMovie", new { id = MovieResult.Id }, MovieResult)); }