public ActionResult ListarRascunhos(int?pagina)
        {
            int tamanhoPagina = 10;
            int numeroPagina  = pagina ?? 1;

            Usuario usr = Session["UsuarioAtual"] as Usuario;


            ViewBag.UsuarioLogado = usr.nome;


            PostagemBO       postagemBO = new PostagemBO();
            IList <Postagem> rascunhos  = postagemBO.ListarRascunhos();

            if (rascunhos == null)
            {
                return(View("SemRascunho"));
            }
            else
            {
                TempData["TitulosRascunhos"] = rascunhos;
                rascunhos.ToList();
                return(View(rascunhos.ToPagedList(numeroPagina, tamanhoPagina)));
            }
        }
        public ActionResult PublicarRascunho(int id)
        {
            Postagem   postagem   = new Postagem();
            PostagemBO postagemBO = new PostagemBO();

            postagemBO.PublicarRascunho(id);
            return(RedirectToAction("ListarPostagens"));
        }
        public ActionResult ExcluirPostagem(int id, FormCollection form)
        {
            PostagemBO rascunhoBO = new PostagemBO();

            rascunhoBO.DeletePostagem(id);

            return(RedirectToAction("ListarPostagens"));
        }
        public ActionResult ExcluirRascunho(int id)
        {
            PostagemBO rascunhoBO = new PostagemBO();

            rascunhoBO.DeletePostagem(id);

            return(RedirectToAction("ListarRascunhos"));
        }
        public ActionResult ListarPorTituloPostagens(string titulo, int?pagina)
        {
            int              tamanhoPagina = 10;
            int              numeroPagina  = pagina ?? 1;
            PostagemBO       pBO           = new PostagemBO();
            IList <Postagem> postagens     = pBO.ListarPorTituloPostagens(titulo);

            return(View("ListarPostagens", postagens.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public JsonResult RascunhoID(int id)
        {
            PostagemBO pBO = new PostagemBO();

            var rascunho = pBO.ReadById(id);


            return(Json(rascunho, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ListarPorDataRascunhos(string dataInicial, string dataFim, FormCollection form, int?pagina)
        {
            int              tamanhoPagina = 10;
            int              numeroPagina  = pagina ?? 1;
            PostagemBO       postagemBO    = new PostagemBO();
            IList <Postagem> rascunhos     = postagemBO.ListarPorDataRascunhos(dataInicial, dataFim);

            TempData["dataRascunhos"] = rascunhos;
            return(View(rascunhos.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public ActionResult ListarPorDataPostagens(string dataInicial, string dataFim, int?pagina)
        {
            int              tamanhoPagina = 10;
            int              numeroPagina  = pagina ?? 1;
            PostagemBO       postagemBO    = new PostagemBO();
            IList <Postagem> postagens     = postagemBO.ListarPorDataPostagens(dataInicial, dataFim);

            // TempData["dataRascunhos"] = postagens;

            return(View("ListarPostagens", postagens.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public ActionResult EditarRascunho(FormCollection form, int id)
        {
            //int idPostagem = Convert.ToInt32(form["id"]);
            //TempData["IdRascunhos"] = idPostagem;
            //return View(idPostagem);

            Postagem   postagem   = new Postagem();
            PostagemBO postagemBO = new PostagemBO();

            postagem = postagemBO.ReadById(id);
            return(View(postagem));
        }
        public ActionResult ListarPorTagPostagens(string tag, int?pagina)
        {
            int              tamanhoPagina = 10;
            int              numeroPagina  = pagina ?? 1;
            PostagemBO       postagemBO    = new PostagemBO();
            IList <Postagem> postagens     = postagemBO.ListarPorTagPostagens(tag);

            TempData["lista"] = postagens;

            postagens.ToList();

            return(View(postagens.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public ActionResult ListarPostagensPrincipal(int?pagina)
        {
            int tamanhoPagina = 10;
            int numeroPagina  = pagina ?? 1;


            PostagemBO      postagemBO = new PostagemBO();
            List <Postagem> postagens  = postagemBO.ListarPostagens();

            TempData["postagens"] = postagens;
            postagens.ToList();
            return(View(postagens.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public ActionResult ListarPostagens(int?pagina)
        {
            int tamanhoPagina = 10;
            int numeroPagina  = pagina ?? 1;

            Usuario usr = Session["UsuarioAtual"] as Usuario;


            ViewBag.UsuarioLogado = usr.nome;

            PostagemBO      postagemBO = new PostagemBO();
            List <Postagem> postagens  = postagemBO.ListarPostagens();

            TempData["TitulosPostagens"] = postagens;
            postagens.ToList();
            return(View(postagens.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public ActionResult EditarRascunho(Postagem rascunho, Imagem arq, FormCollection form)
        {
            PostagemBO postagemBO = new PostagemBO();
            Imagem     img        = new Imagem();


            List <Imagem> lista = new List <Imagem>();

            var dataEnvio = DateTime.Now;

            //pegando o valor do campo rascunho  e do id da postagem
            Postagem postagem = new Postagem();
            int      post     = postagem.rascunho;
            int      id       = postagem.id;

            foreach (var imagem in arq.imagens) // colocar em um metodo
            {
                if (imagem != null && imagem.ContentLength > 0)
                {
                    var extensoePermitidas = new String[] { ".jpg", ".jpeg", ".png" };

                    var checarExtensao = Path.GetExtension(imagem.FileName).ToLower();

                    var tipo = Path.GetExtension(imagem.FileName).ToLower();

                    if (extensoePermitidas.Contains(checarExtensao))
                    {
                        string caminho = Path.Combine(Server.MapPath("~/imagens"), Path.GetFileName(imagem.FileName));
                        imagem.SaveAs(caminho);

                        img.imagem      = System.IO.File.ReadAllBytes(caminho);
                        img.nome        = imagem.FileName;
                        img.tipoArquivo = imagem.ContentType;
                        lista.Add(img);
                        img = new Imagem();
                    }
                    else
                    {
                        ViewBag.aviso = "arquivo com extensão inválida!";
                    }
                }
            }

            postagemBO.Alterar(rascunho, dataEnvio, lista, arq, id, post);
            return(RedirectToAction("ListarRascunhos"));
        }
        public ActionResult ListarPorTituloRascunhos(string titulo, FormCollection form, int?pagina)
        {
            int              tamanhoPagina = 10;
            int              numeroPagina  = pagina ?? 1;
            PostagemBO       rascunhoBO    = new PostagemBO();
            IList <Postagem> rascunhos     = rascunhoBO.ListarPorTituloRascunhos(titulo);

            TempData["TitulosRascunhos"] = rascunhos;

            if (rascunhos == null)
            {
                return(RedirectToAction("ListarRascunhos"));
            }
            else
            {
                return(View(rascunhos.ToPagedList(numeroPagina, tamanhoPagina)));
            }
        }
        public ActionResult ListarPorTagPostagens(string tag, FormCollection form, int?pagina)
        {
            int              tamanhoPagina = 10;
            int              numeroPagina  = pagina ?? 1;
            PostagemBO       postagemBO    = new PostagemBO();
            IList <Postagem> postagens;

            if (form["tag"] != String.Empty)
            {
                postagens = postagemBO.ListarPorTagPostagens(form["tag"].ToString());
            }
            else
            {
                postagens = postagemBO.ListarPostagensPrincipal();
            }

            TempData["postagens"] = postagens;


            postagens.ToList();
            return(View(postagens.ToPagedList(numeroPagina, tamanhoPagina)));
        }
        public ActionResult CriarPostagem(Postagem post, FormCollection form, Imagem arq)
        {
            Imagem        img      = new Imagem();
            List <Imagem> lista    = new List <Imagem>();
            var           dataHora = DateTime.Now;

            var x = form["checkbox"];

            if (form["checkbox"] == null)
            {
                post.rascunho = 0;
            }
            else
            {
                post.rascunho = 1;
            }

            foreach (var imagem in arq.imagens)
            {
                if (imagem != null && imagem.ContentLength > 0)
                {
                    var extensoePermitidas = new String[] { ".jpg", ".jpeg", ".png" };

                    var checarExtensao = Path.GetExtension(imagem.FileName).ToLower();

                    var tipo = Path.GetExtension(imagem.FileName).ToLower();

                    if (extensoePermitidas.Contains(checarExtensao))
                    {
                        string caminho = Path.Combine(Server.MapPath("~/imagens"), Path.GetFileName(imagem.FileName));
                        imagem.SaveAs(caminho);

                        img.imagem      = System.IO.File.ReadAllBytes(caminho);
                        img.nome        = imagem.FileName;
                        img.tipoArquivo = imagem.ContentType;

                        lista.Add(img);
                        img = new Imagem();
                    }
                    else
                    {
                        ViewData["sucesso"] = 1;
                    }
                }
            }

            PostagemBO postagemBO = new PostagemBO();

            int id = postagemBO.Gravar(post, dataHora, post.rascunho); // colocar um tste de condição aqui


            Postagem postagem = postagemBO.ReadById(id);

            int postagem_fk = postagem.id;



            ImagemBO imagemBO = new ImagemBO();

            imagemBO.Gravar(lista, arq, postagem_fk);

            return(RedirectToAction("CriarPostagem"));
        }