public FilmeDto BuscaFilme(int idFilme)
        {
            var filme = DbContext.Set <Filme>()
                        .Include(x => x.Ators)
                        .ThenInclude(x => x.Ator)
                        .FirstOrDefault(x => x.Id == idFilme);

            if (filme is null)
            {
                return(null);
            }

            var filmeGet = new FilmeDto
            {
                Diretor = filme.Diretor,
                Nome    = filme.Nome,
                Genero  = filme.Genero,
                Rating  = filme.Rating,
                Ator    = filme.Ators.Select(x => new AtorDto
                {
                    Nome = x.Ator.Nome
                }).ToList()
            };

            return(filmeGet);
        }
 public static Filme ToDomain(this FilmeDto obj)
 {
     return(new Filme
     {
         Id = obj.Id,
         Ano = obj.Ano,
         Nota = obj.Nota,
         Titulo = obj.Titulo
     });
 }
        public FilmeDetails(FilmeDto Filme)
        {
            InitializeComponent();
            FilmeDetailsObject = Service.GetFilmeDetails(Filme.id).Result;
            PreencherCampos();

            if (FilmeDetailsObject.video)
            {
                //Trailer = VideoService.GetTrailer(FilmeDetailsObject.id).Result;
            }
        }
        public async Task <ActionResult <Filme> > PostFilme(FilmeDto model)
        {
            var filme = _mapper.Map <Filme>(model);

            _repo.Add(filme);
            if (_repo.SaveChanges())
            {
                return(Created($"/api/filme/{model.Id}", _mapper.Map <FilmeDto>(filme)));
            }

            return(BadRequest("Filme não cadastrado"));
        }
        public async Task <IActionResult> PutFilme(int id, FilmeDto model)
        {
            var filme = await _repo.GetFilmeByIdAsync(id);

            if (filme == null)
            {
                return(BadRequest("Filme não encontrado"));
            }

            _mapper.Map(model, filme);

            _repo.Update(filme);
            if (_repo.SaveChanges())
            {
                return(Created($"/api/filme/{model.Id}", _mapper.Map <FilmeDto>(filme)));
            }

            return(BadRequest("Filme não Atualizado"));
        }
        public IActionResult Put([FromBody] FilmeDto filme)
        {
            try
            {
                var filmeAtualizado = new Filme(
                    filme.FilmeId,
                    filme.Nome,
                    filme.Descricao,
                    filme.CategoriaId,
                    filme.AlteracaoUsuarioId.Value,
                    filme.Ativo
                    );

                _filmeService.Put(filmeAtualizado);

                if (Notification.GetNotification() != null)
                {
                    var notificationMessage = Notification.GetNotification().Message;
                    Notification.SetEmpty();

                    return(NotFound(new
                    {
                        StatusCode = (int)HttpStatusCode.NotFound,
                        ErrorMessage = notificationMessage
                    }));
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, new
                {
                    StatusCode = (int)HttpStatusCode.InternalServerError,
                    ErrorMessage = ex.Message,
                    stackTrace = ex.StackTrace
                }));
            }
        }