Esempio n. 1
0
        public ActionResult Post(DetalhesPostViewModel viewModel)
        {
            var conexaoBanco = new ConexaoBanco();
            if (ModelState.IsValid)
            {
                var comentario = new Comentario();
                comentario.AdmPost = HttpContext.User.Identity.IsAuthenticated;
                comentario.Descricao = viewModel.ComentarioDescricao;
                comentario.DataHora = DateTime.Now;
                comentario.Email = viewModel.ComentarioEmail;
                comentario.IdPost = viewModel.Id;
                comentario.Nome = viewModel.ComentarioNome;
                comentario.PaginaWeb = viewModel.ComentarioPaginaWeb;
                conexaoBanco.Comentarios.Add(comentario);

                try
                {
                    conexaoBanco.SaveChanges();
                    return Redirect(Url.Action("Post", new
                    {
                        ano = viewModel.DataPublicacao.Year,
                        mes = viewModel.DataPublicacao.Month,
                        dia = viewModel.DataPublicacao.Day,
                        titulo = viewModel.Titulo,
                        id = viewModel.Id
                    })+"#comentarios");
                }
                catch (Exception exp)
                {
                    ModelState.AddModelError("", exp.Message);
                }
            }
            preparaDetalhesPostViewModel(viewModel.Id, viewModel.PaginaAtual, viewModel, conexaoBanco);
            return View(viewModel);
        }
Esempio n. 2
0
        public ActionResult Post(int id, int? pagina)
        {
            var conexaoBanco = new ConexaoBanco();
            var viewModel = new DetalhesPostViewModel();
            viewModel = preparaDetalhesPostViewModel(id, pagina, viewModel, conexaoBanco);

            return View(viewModel);
        }
Esempio n. 3
0
        private static DetalhesPostViewModel preparaDetalhesPostViewModel(int id, int? pagina, DetalhesPostViewModel viewModel, ConexaoBanco conexaoBanco)
        {
            var post = (from p in conexaoBanco.Post
                where p.Id == id
                select p).FirstOrDefault();
            if (post == null)
            {
                throw new Exception(string.Format("Post código {0} não encontrado.", id));
            }
            viewModel.Id = post.Id;
            viewModel.Autor = post.Autor;
            viewModel.DataPublicacao = post.DataPublicacao;
            viewModel.Titulo = post.Titulo;
            viewModel.Resumo = post.Resumo;
            viewModel.Visivel = post.Visivel;
            viewModel.QtdeComentarios = post.Comentarios.Count;
            viewModel.Descricao = post.Descricao;
            viewModel.Tags = post.PostTag.Select(x => x.TagClass).ToList();
            var paginaCorreta = pagina.GetValueOrDefault(1);
            var indicePagina = paginaCorreta - 1;
            var itensPorPagina = 10;

            var comentarios = from p in conexaoBanco.Comentarios
                where p.IdPost == id
                orderby p.DataHora descending
                select p;

            viewModel.PaginaAtual = paginaCorreta;
            viewModel.Comentarios = (from p in comentarios.Skip(indicePagina*itensPorPagina).Take(itensPorPagina)
                                   select p).ToList();
            viewModel.TotalPaginas = (int) Math.Ceiling((double) comentarios.Count()/itensPorPagina);
            return viewModel;
        }