public ActionResult CadastrarPost(PostViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var conexaoBanco = new ConexaoBanco();
                var post = new Post();
                post.DataPublicacao = new DateTime(viewModel.DataPublicacao.Year, viewModel.DataPublicacao.Month, viewModel.DataPublicacao.Day, viewModel.HoraPublicacao.Hour, viewModel.HoraPublicacao.Minute, 0);
                post.Autor = viewModel.Autor;
                post.Descricao = viewModel.Descricao;
                post.Resumo = viewModel.Resumo;
                post.Titulo = viewModel.Titulo;
                post.Visivel = viewModel.Visivel;
                post.PostTag = new List<PostTag>();
                if (viewModel.Tags != null)
                {
                    foreach (var item in viewModel.Tags)
                    {
                        var tag = conexaoBanco.Tags.FirstOrDefault(x => x.Tag.ToLower() == item.ToLower());
                        if (tag == null)
                        {
                            tag = new TagClass
                            {
                                Tag = item
                            };
                            conexaoBanco.Tags.Add(tag);
                        }
                        post.PostTag.Add(new PostTag
                        {
                            Tag = item,
                            TagClass = tag
                        });
                    }
                }

                conexaoBanco.Post.Add(post);

                try
                {
                    conexaoBanco.SaveChanges();
                    return RedirectToAction("Index");
                }
                catch (Exception exp)
                {
                    ModelState.AddModelError("", Erros.Tratar(exp));
                }
            }
            return View(viewModel);
        }
        public ActionResult EditarPost(PostViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var conexaoBanco = new ConexaoBanco();
                var post = conexaoBanco.Post.FirstOrDefault(x => x.Id == viewModel.Id);
                if (post == null)
                {
                    throw new Exception(string.Format("Post com código {0} não encontrado.", viewModel.Id));
                }
                post.DataPublicacao = new DateTime(viewModel.DataPublicacao.Year, viewModel.DataPublicacao.Month, viewModel.DataPublicacao.Day, viewModel.HoraPublicacao.Hour, viewModel.HoraPublicacao.Minute, 0);
                post.Autor = viewModel.Autor;
                post.Descricao = viewModel.Descricao;
                post.Resumo = viewModel.Resumo;
                post.Titulo = viewModel.Titulo;
                post.Visivel = viewModel.Visivel;
                var postsTagsAtuais = post.PostTag.ToList();
                foreach (var item in postsTagsAtuais)
                {
                    conexaoBanco.PostTags.Remove(item);
                }
                if (viewModel.Tags != null)
                {
                    foreach (var item in viewModel.Tags)
                    {
                        var tag = conexaoBanco.Tags.FirstOrDefault(x => x.Tag.ToLower() == item.ToLower());
                        if (tag == null)
                        {
                            tag = new TagClass
                            {
                                Tag = item
                            };
                            conexaoBanco.Tags.Add(tag);
                        }
                        post.PostTag.Add(new PostTag
                        {
                            Tag = item,
                            TagClass = tag
                        });
                    }
                }

                try
                {
                    conexaoBanco.SaveChanges();
                    return RedirectToAction("Index");
                }
                catch (Exception exp)
                {
                    ModelState.AddModelError("", exp.Message);
                }
            }
            return View(viewModel);
        }