public async Task <ActionResult <AtualizarFilmeDTO> > PutGet(int id) { var filmeResult = await GetFilme(id); if (filmeResult.Result is NotFoundResult) { return(NotFound()); } DetalhesFilmeDTO filmeDetail = filmeResult.Value; List <int> idsGenerosSelecionados = filmeDetail.Generos.Select(x => x.Id).ToList(); List <int> idsTiposSelecionados = filmeDetail.TiposFilme.Select(x => x.Id).ToList(); List <Genero> generosNaoSelecionados = await _context.Generos.Where(x => !idsGenerosSelecionados.Contains(x.Id)).ToListAsync(); List <TipoFilme> tipoFilmeSelecionados = await _context.TipoFilmes.Where(x => !idsTiposSelecionados.Contains(x.Id)).ToListAsync(); AtualizarFilmeDTO atualizarFilme = new AtualizarFilmeDTO(); atualizarFilme.Filme = filmeDetail.Filme; atualizarFilme.GenerosSelecionados = filmeDetail.Generos; atualizarFilme.GenerosNaoSelecionados = generosNaoSelecionados; atualizarFilme.tiposDoFilme = tipoFilmeSelecionados; return(atualizarFilme); }
public async Task <ActionResult <DetalhesFilmeDTO> > GetFilme(int id) { var filme = await _context.Filme.Where(x => x.Id == id) .Include(x => x.Generos).ThenInclude(x => x.Genero) .Include(x => x.TiposFilme).ThenInclude(x => x.TipoFilme) .FirstOrDefaultAsync(); if (filme == null) { return(NotFound()); } DetalhesFilmeDTO DTO = new DetalhesFilmeDTO(); DTO.Filme = filme; DTO.Generos = filme.Generos.Select(x => x.Genero).ToList(); DTO.TiposFilme = filme.TiposFilme.Select(x => x.TipoFilme).ToList(); return(DTO); }