Exemple #1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Premio,FilmeFK,PessoaFK")] PessoaFilme pessoaFilme)
        {
            if (id != pessoaFilme.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(pessoaFilme);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PessoaFilmeExists(pessoaFilme.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmeFK"]  = new SelectList(_context.Filme, "Id", "Titulo", pessoaFilme.FilmeFK);
            ViewData["PessoaFK"] = new SelectList(_context.Pessoa, "Id", "Nome", pessoaFilme.PessoaFK);
            return(View(pessoaFilme));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Tarefa")] Profissao profissao)
        {
            if (id != profissao.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(profissao);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ProfissaoExists(profissao.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(profissao));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,FilmeFK,GeneroFK")] FilmeGenero filmeGenero)
        {
            if (id != filmeGenero.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(filmeGenero);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FilmeGeneroExists(filmeGenero.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmeFK"]  = new SelectList(_context.Filme, "Id", "Titulo", filmeGenero.FilmeFK);
            ViewData["GeneroFK"] = new SelectList(_context.Genero, "Id", "Nome", filmeGenero.GeneroFK);
            return(View(filmeGenero));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Nome,Foto,DataNasc,DataObi,DataInic,Nacionalidade,ProfissaoFK")] Pessoa pessoa, IFormFile imagem)
        {
            if (id != pessoa.Id)
            {
                return(NotFound());
            }

            // recuperar o ID do objeto enviado para o browser
            var numIdFoto = HttpContext.Session.GetString("NumFotoEmEdicao");



            // var auxiliar
            string caminhoCompleto = "";


            if (ModelState.IsValid)
            {
                try
                {
                    if (imagem == null)
                    {
                        pessoa.Foto = numIdFoto;
                    }
                    else
                    {
                        // há ficheiro. Mas, será um ficheiro válido?
                        if (imagem.ContentType == "image/jpeg" || imagem.ContentType == "image/png" || imagem.ContentType == "image/jpg")
                        {
                            // definir o novo nome da fotografia
                            Guid g;
                            g = Guid.NewGuid();

                            //apagar a imagem anterior
                            string localizacaoFicheiro = _caminho.WebRootPath;
                            caminhoCompleto = Path.Combine(localizacaoFicheiro, "Imagens", numIdFoto);
                            if (System.IO.File.Exists(caminhoCompleto))
                            {
                                System.IO.File.Delete(caminhoCompleto);
                            }

                            caminhoCompleto = g.ToString();  // determinar a extensão do nome da imagem

                            string extensao = Path.GetExtension(imagem.FileName).ToLower();
                            // caminho completo do ficheiro
                            caminhoCompleto = caminhoCompleto + extensao;



                            // associar este ficheiro aos dados ds foto
                            pessoa.Foto = caminhoCompleto;

                            // localização do armazenamento da imagem

                            caminhoCompleto = Path.Combine(localizacaoFicheiro, "Imagens", caminhoCompleto);
                        }
                        else
                        {
                            // ficheiro não é válido
                            // adicionar msg de erro
                            ModelState.AddModelError("", "Só pode escolher uma imagem");
                            // devolver o controlo à View

                            var profissao = (from pr in _context.Profissao
                                             join p in _context.Pessoa on pr.Id equals p.ProfissaoFK
                                             select pr)
                                            .OrderBy(pr => pr.Tarefa);

                            ViewData["ProFK"] = new SelectList(profissao, "Id", "Tarefa");
                            return(View(pessoa));
                        }
                        _context.Update(pessoa);

                        await _context.SaveChangesAsync();

                        // vou guardar, agora, no disco rígido do Servidor a imagem
                        using var stream = new FileStream(caminhoCompleto, FileMode.Create);
                        await imagem.CopyToAsync(stream);
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PessoaExists(pessoa.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["ProFK"] = new SelectList(_context.Profissao.OrderBy(pr => pr.Tarefa), "Id", "Tarefa", pessoa.ProfissaoFK);
            return(View(pessoa));
        }