Exemple #1
0
        public ActionResult Create([Bind(Include = "Numero,Nome,Sinopse,Foto,Trailer,AuxClassificacao,TemporadaFK")] Episodios episodio, HttpPostedFileBase uploadFoto)
        {
            try
            {
                //Converter o AuxClassificacao para double
                episodio.Classificacao = Convert.ToDouble(episodio.AuxClassificacao);

                int idNovoEpisodio = db.Episodios.Max(t => t.ID) + 1;

                string nomeFoto = "Episodio_" + idNovoEpisodio + ".jpg";

                string path = "";

                //verificar se foi fornecido ficheiro
                //Há ficheiro?
                if (uploadFoto != null)
                {
                    // o ficheiro foi fornecido
                    // validar se o que foi fornecido é uma imagem
                    // criar o caminho completo até ao sítio onde o ficheiro
                    // será guardado
                    path = Path.Combine(Server.MapPath("~/Imagens/"), nomeFoto);

                    //guardar nome do file na bd
                    episodio.Foto = nomeFoto;
                }
                else
                //Não havendo ficheiro (e sendo obrigatório) vamos ter de fornecer uma imagem
                {
                    //avisar que nao foi fornecida qualquer imagem
                    ModelState.AddModelError("", "Não foi fornecida uma imagem.");
                    ViewBag.TemporadaFK = new SelectList(db.Temporadas, "ID", "Nome", episodio.TemporadaFK);

                    return(View(episodio));
                }
                if (ModelState.IsValid)
                {
                    episodio.Nome    = episodio.Nome.Trim();
                    episodio.Sinopse = episodio.Sinopse.Trim();
                    // valida se os dados fornecidos estão de acordo
                    // com as regras definidas na especificação do Modelo
                    //adiciona novo episodio ao Modelo
                    db.Episodios.Add(episodio);
                    //guarda os dados na bd
                    db.SaveChanges();
                    //guarda a foto no disco rigido
                    uploadFoto.SaveAs(path);
                    //tenho de passar para aqui o id que uso
                    return(RedirectToAction("Index", new { id = episodio.TemporadaFK }));
                }
            }
            catch (Exception)
            {
                ModelState.AddModelError("", string.Format("Ocorreu um erro a Criar o Episódio,tente novamente."));
            }


            ViewBag.TemporadaFK = new SelectList(db.Temporadas, "ID", "Nome", episodio.TemporadaFK);
            return(View(episodio));
        }
Exemple #2
0
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                //alterar as respostas por defeito, de modo a não haver erros de BadRequest ou de NotFound
                return(Redirect("/"));
            }
            Episodios episodio = db.Episodios.Find(id);

            if (episodio == null)
            {
                //alterar as respostas por defeito, de modo a não haver erros de BadRequest ou de NotFound
                return(Redirect("/"));
            }

            return(View(episodio));
        }
Exemple #3
0
        public ActionResult Edit([Bind(Include = "ID,Numero,Nome,Sinopse,Foto,Trailer,AuxClassificacao,TemporadaFK")] Episodios episodio, HttpPostedFileBase editFoto)
        {
            //converter o atributo auxiliar para double
            episodio.Classificacao = Convert.ToDouble(episodio.AuxClassificacao);
            // o ficheiro foi fornecido
            // validar se o que foi fornecido é uma imagem
            // criar o caminho completo até ao sítio onde o ficheiro será guardado
            string novoNome        = "";
            string nomeAntigo      = "";
            bool   haFotoNova      = false;
            string caminhoCompleto = "";

            if (ModelState.IsValid)
            {
                try
                {
                    if (editFoto != null)
                    {
                        //o nome antigo representa a foto na base de dados já inserida
                        nomeAntigo = episodio.Foto;
                        //o novo nome será guardado na bd se for inserida uma nova foto
                        novoNome      = "Episodio_" + episodio.ID + DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetExtension(editFoto.FileName).ToLower();
                        episodio.Foto = novoNome;
                        haFotoNova    = true;
                    }
                    episodio.Nome            = episodio.Nome.Trim();
                    episodio.Sinopse         = episodio.Sinopse.Trim();
                    db.Entry(episodio).State = EntityState.Modified;
                    db.SaveChanges();

                    if (haFotoNova)
                    {
                        caminhoCompleto = (Path.Combine(Server.MapPath("~/Imagens/"), nomeAntigo));
                        // eliminar a foto antiga da bd e guardar a nova foto na bd
                        System.IO.File.Delete(caminhoCompleto);
                        editFoto.SaveAs(Path.Combine(Server.MapPath("~/Imagens/"), novoNome));
                    }
                }
                catch (Exception)
                {
                    //se houver um erro na edição apresenta este erro
                    ModelState.AddModelError("", string.Format("Ocorreu um erro com a edição do episódio ,tente novamente.", episodio.Nome));
                }
            }
            return(RedirectToAction("Index", new { id = episodio.TemporadaFK }));
        }
Exemple #4
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                //alterar as respostas por defeito, de modo a não haver erros de BadRequest ou de NotFound
                return(Redirect("/"));
            }
            Episodios episodios = db.Episodios.Find(id);

            if (episodios == null)
            {
                //alterar as respostas por defeito, de modo a não haver erros de BadRequest ou de NotFound
                return(Redirect("/"));
            }


            ViewBag.TemporadaFK = new SelectList(db.Temporadas, "ID", "Nome", episodios.TemporadaFK);
            return(View(episodios));
        }
Exemple #5
0
        // GET: Episodios/Details/5
        /// <summary>
        /// faz get dos dados de 1 episódio
        /// </summary>
        /// <param name="id">id do episódio</param>
        /// <returns>view details com o episódio</returns>
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                //Alterar as rotas por defeito de modo a evitar as mensagens de BadRequest e NotFound
                return(Redirect("/"));
            }
            Episodios episodio = db.Episodios.Find(id);

            if (episodio == null)
            {
                return(Redirect("/"));
            }
            var coment = episodio.ListaDeComentarios.ToList();

            ViewBag.coment = coment;


            return(View(episodio));
        }
Exemple #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Episodios episodio = db.Episodios.Find(id);

            if (episodio == null)
            {
                return(Redirect("/"));
            }
            try
            {
                //Remover um episodio
                //Caso haja pessoas ou comentarios associadas vai para a exceção
                db.Episodios.Remove(episodio);
                db.SaveChanges();
            }
            //Se houver uma temporada associada à serie apresenta este erro.
            catch (Exception)
            {
                ModelState.AddModelError("", string.Format("Não é possível apagar este episódio, pois existem comentários ou pessoas a ele associados."));
                return(View(episodio));
            }
            return(RedirectToAction("Index", new { id = episodio.TemporadaFK }));
        }