public ActionResult CadastrarUsuario(CadastrarUsuarioViewModel viewModel)
        {
            if (ModelState.IsValid) {
                var conexao = new ConexaoBanco();
                var usuario = new Usuario();

                usuario.sLogin = viewModel.sLogin;
                usuario.sNome = viewModel.sNome;
                usuario.sSenha = viewModel.sSenha;

                var acho = conexao.Usuarios.Where(x => x.sNome == usuario.sNome).FirstOrDefault();

                if (acho == null)
                 {
                    try
                    {
                        conexao.Usuarios.Add(usuario);
                        conexao.SaveChanges();
                        return RedirectToAction("Index");
                    }
                    catch (Exception exp)
                    {
                        ModelState.AddModelError("Erro Banco:", exp.Message);
                    }
                }
                else
                {
                    throw new Exception(string.Format("Usuario já Cadastrado"));
                }
            }
            return View(viewModel);
        }
        public ActionResult EditarUsuario(CadastrarUsuarioViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var conexao = new ConexaoBanco();
                var usuarios = conexao.Usuarios.Where(x => x.Id == viewModel.iId).FirstOrDefault();

                usuarios.Id = viewModel.iId;
                usuarios.sLogin = viewModel.sLogin;
                usuarios.sNome = viewModel.sNome;
                usuarios.sSenha = viewModel.sSenha;

                //var acho = conexao.Usuarios.Where(x => x.sNome == viewModel.sNome && x.Id == viewModel.iId).FirstOrDefault();
                var acho = (from p in conexao.Usuarios where p.Id != viewModel.iId && p.sNome == viewModel.sNome  select p).FirstOrDefault();

                if (acho == null)
                {
                    try
                    {
                        //conexao.Usuarios.Add(usuarios);
                        conexao.SaveChanges();
                        return RedirectToAction("Index");
                    }
                    catch (Exception exp)
                    {
                        ModelState.AddModelError("Erro Banco:", exp.Message);
                    }
                }
                else
                {
                    throw new Exception(string.Format("Usuario já cadastrado!"));
                }
            }
            return View(viewModel);
        }
        public ActionResult ExcluirUsuario(int id)
        {
            var conexao = new ConexaoBanco();
            var usuario = (from p in conexao.Usuarios where p.Id == id select p).FirstOrDefault();

            if (usuario == null)
            {
                throw new Exception(string.Format("Post código {0} não exite.", id));
            }
            conexao.Usuarios.Remove(usuario);
            conexao.SaveChanges();

            return RedirectToAction("Index", "Administracao");
        }
        public ActionResult Post(DetalhesPostViewModel viewModel)
        {
            var conexao = new ConexaoBanco();
            var post = (from p in conexao.Posts where p.Id == viewModel.id select p).FirstOrDefault();

            if (ModelState.IsValid)
            {

                if (post == null)
                {
                    throw new Exception(string.Format("Post código {0} não encontrado.", viewModel.id));
                }
                var comentario = new Comentario();
                comentario.bAdmPost = HttpContext.User.Identity.IsAuthenticated;
                comentario.lDescricao = viewModel.ComentarioDescricao;
                comentario.sEmail = viewModel.ComentarioEmail;
                comentario.idPost = viewModel.id;
                comentario.sNome = viewModel.ComentarioNome;
                comentario.sPaginaWeb = viewModel.ComentarioPaginaWeb;
                comentario.dDataHora = DateTime.Now;

                try
                {
                    conexao.Comentarios.Add(comentario);
                    conexao.SaveChanges();
                    return Redirect(Url.Action("Post", new
                    {
                        ano = post.dDataPublicacao.Year,
                        mes = post.dDataPublicacao.Month,
                        dia = post.dDataPublicacao.Day,
                        titulo = post.sTitulo,
                        id = post.Id
                    }) + "#comentarios");
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }
            }
            preencherViewModel(viewModel, post, null);
            return View(viewModel);
        }