Ejemplo n.º 1
0
        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));
        }