Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        public async Task <ActionResult <MovieDTO> > PostMovie(MoviePutDTO moviePostDTO)
        {
            var movieResult = await _movieRepository.PostMovie(moviePostDTO).ConfigureAwait(false);

            return(CreatedAtAction("GetMovie", new { id = movieResult.Id }, movieResult));
        }