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); }