Exemplo n.º 1
0
        public async Task <ActorPutDTO> PutActor(int id, ActorPutDTO actorPutDTO)
        {
            if (actorPutDTO == null)
            {
                throw new ArgumentNullException(nameof(actorPutDTO));
            }

            try
            {
                Actor actor = await _context.Actors.FirstOrDefaultAsync(a => a.Id == id).ConfigureAwait(false);

                actor.Name        = actorPutDTO.Name;
                actor.DateOfBirth = actorPutDTO.DateOfBirth;
                actor.gender      = actorPutDTO.gender;
                actor.Avatar      = actorPutDTO.Avatar;

                await _context.SaveChangesAsync().ConfigureAwait(false);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ActorExists(id))
                {
                    return(null);
                }
                else
                {
                    throw;
                }
            }

            return(actorPutDTO);
        }
        public async Task <ActorPutDTO> PutActor(int id, ActorPutDTO actorPutDTO)
        {
            if (actorPutDTO == null)
            {
                throw new ArgumentNullException(nameof(actorPutDTO));
            }

            try
            {
                Actor actor = await _context.Actors.Include(a => a.MovieActors)
                              .FirstOrDefaultAsync(a => a.Id == id).ConfigureAwait(false);

                actor.FullName  = actorPutDTO.FullName;
                actor.Birthday  = actorPutDTO.Birthday;
                actor.Biography = actorPutDTO.Biography;
                actor.Website   = actorPutDTO.Website;
                actor.Image     = actorPutDTO.Image;

                _context.MovieActors.RemoveRange(actor.MovieActors);

                foreach (MovieActorDTO movieActorDTO in actorPutDTO.MovieActorDTOs)
                {
                    Movie movie = _context.Movies.Find(movieActorDTO.MovieId);
                    actor.MovieActors.Add(new MovieActor()
                    {
                        MovieId = movie.Id,
                        Movie   = movie,
                        ActorId = actor.Id,
                        Actor   = actor
                    });
                }

                await _context.SaveChangesAsync().ConfigureAwait(false);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ActorExists(id))
                {
                    return(null);
                }
                else
                {
                    throw;
                }
            }
            return(actorPutDTO);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> PutActor(int id, ActorPutDTO actorPutDTO)
        {
            if (actorPutDTO == null)
            {
                throw new ArgumentNullException(nameof(actorPutDTO));
            }

            if (id != actorPutDTO.Id)
            {
                return(BadRequest());
            }

            var actorResult = await _actorRepository.PutActor(id, actorPutDTO).ConfigureAwait(false);

            if (actorResult == null)
            {
                return(NotFound());
            }

            return(NoContent());
        }
Exemplo n.º 4
0
        public async Task <ActorPutDTO> PostActor(ActorPutDTO actorPostDTO)
        {
            if (actorPostDTO == null)
            {
                throw new ArgumentNullException(nameof(actorPostDTO));
            }

            var actorResult = _context.Actors.Add(new Actor()
            {
                Name        = actorPostDTO.Name,
                DateOfBirth = actorPostDTO.DateOfBirth,
                gender      = actorPostDTO.gender,
                Avatar      = actorPostDTO.Avatar
            });

            await _context.SaveChangesAsync().ConfigureAwait(false);

            actorPostDTO.Id = actorResult.Entity.Id;

            return(actorPostDTO);
        }
Exemplo n.º 5
0
        public async Task <ActionResult <Actor> > PostActor(ActorPutDTO actorPutDTO)
        {
            var actorResult = await _actorRepository.PostActor(actorPutDTO).ConfigureAwait(false);

            return(CreatedAtAction("GetActor", new { id = actorResult.Id }, actorResult));
        }