public ActionResult CadastrarUsuario(UsuarioViewModel viewModel) { if (ModelState.IsValid) { var conexaoBanco = new ConexaoBanco(); var usuario = new Usuario(); usuario.Nome = viewModel.Nome; usuario.Login = viewModel.Login.ToUpper(); usuario.Senha = viewModel.Senha; conexaoBanco.Usuarios.Add(usuario); try { var jaExiste = (from p in conexaoBanco.Usuarios where p.Login.ToUpper() == usuario.Login select p).Any(); if (jaExiste) { throw new Exception(string.Format("Já existe usuário cadastrado com o login {0}.", usuario.Login)); } conexaoBanco.SaveChanges(); return RedirectToAction("Index"); } catch (Exception exp) { ModelState.AddModelError("", Erros.Tratar(exp)); } } return View(viewModel); }
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); }
public ActionResult Post(int id, int? pagina) { var conexaoBanco = new ConexaoBanco(); var viewModel = new DetalhesPostViewModel(); viewModel = preparaDetalhesPostViewModel(id, pagina, viewModel, conexaoBanco); return View(viewModel); }
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 Index(string tag, string pesquisa, int? pagina) { var conexao = new ConexaoBanco(); var posts = from p in conexao.Post select p; if (!string.IsNullOrWhiteSpace(tag)) { posts = from p in posts where p.PostTag.Any(x => x.Tag.ToLower() == tag.ToLower()) select p; } if (!string.IsNullOrWhiteSpace(pesquisa)) { posts = from p in posts where p.Titulo.ToLower().Contains(pesquisa.ToLower()) select p; } pagina = pagina.GetValueOrDefault(1); var indicePagina = pagina.Value - 1; var itensPorPagina = 10; posts = posts.OrderByDescending(x => x.DataPublicacao); var viewModel = new ListarPostsViewModel(); viewModel.Tag = tag; viewModel.PaginaAtual = pagina.Value; viewModel.Pesquisa = pesquisa; viewModel.Posts = (from p in posts.Skip(indicePagina * itensPorPagina).Take(itensPorPagina) select new DetalhesPostViewModel { Id = p.Id, Autor = p.Autor, DataPublicacao = p.DataPublicacao, Titulo = p.Titulo, Resumo = p.Resumo, Visivel = p.Visivel, QtdeComentarios = p.Comentarios.Count() }).ToList(); viewModel.Tags = (from p in conexao.Tags where conexao.PostTags.Any(x => x.Tag == p.Tag) select p).ToList(); viewModel.TotalPaginas = (int)Math.Ceiling((double)posts.Count() / itensPorPagina); return View(viewModel); }
public ActionResult EditarUsuario(int id) { var conexaoBanco = new ConexaoBanco(); var usuario = conexaoBanco.Usuarios.FirstOrDefault(x => x.Id == id); if (usuario == null) { throw new Exception(string.Format("Usuário com código {0} não encontrado.", id)); } var viewModel = new UsuarioViewModel { Id = usuario.Id, Login = usuario.Login, Nome = usuario.Nome, Senha = usuario.Senha }; return View(viewModel); }
public ActionResult EditarPost(int id) { var conexaoBanco = new ConexaoBanco(); var post = conexaoBanco.Post.FirstOrDefault(x => x.Id == id); if (post == null) { throw new Exception(string.Format("Post com código {0} não encontrado.", id)); } var viewModel = new PostViewModel { DataPublicacao = post.DataPublicacao, HoraPublicacao = post.DataPublicacao, Titulo = post.Titulo, Visivel = post.Visivel, Resumo = post.Resumo, Autor = post.Autor, Descricao = post.Descricao, Id = post.Id, Tags = post.PostTag.Select(x => x.Tag).ToList() }; return View(viewModel); }
public ActionResult Index(LoginViewModel viewModel, string returnUrl) { if (!ModelState.IsValid) { return View(viewModel); } var conexaoBanco = new ConexaoBanco(); var usuario = (from p in conexaoBanco.Usuarios where p.Login.ToUpper() == viewModel.Login.ToUpper() && p.Senha == viewModel.Senha select p).FirstOrDefault(); if (usuario == null) { ModelState.AddModelError("", "Usuário e/ou senha estão incorretos."); return View(viewModel); } FormsAuthentication.SetAuthCookie(usuario.Login, viewModel.Lembrar); if (returnUrl != null) { return Redirect(returnUrl); } return RedirectToAction("Index", "Blog"); }
public ActionResult EditarUsuario(UsuarioViewModel viewModel) { if (ModelState.IsValid) { var conexaoBanco = new ConexaoBanco(); var usuario = conexaoBanco.Usuarios.FirstOrDefault(x => x.Id == viewModel.Id); if (usuario == null) { throw new Exception(string.Format("Usuário com código {0} não encontrado.", viewModel.Id)); } usuario.Login = viewModel.Login; usuario.Nome = viewModel.Nome; if (!string.IsNullOrWhiteSpace(viewModel.Senha)) { usuario.Senha = viewModel.Senha; } try { var jaExiste = (from p in conexaoBanco.Usuarios where p.Login.ToUpper() == usuario.Login && p.Id != usuario.Id select p).Any(); if (jaExiste) { throw new Exception(string.Format("Já existe usuário cadastrado com o login {0}.", usuario.Login)); } conexaoBanco.SaveChanges(); return RedirectToAction("Index"); } catch (Exception exp) { ModelState.AddModelError("", exp.Message); } } return View(viewModel); }
public ActionResult ExcluirPost(int id) { var conexaoBanco = new 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 foi encontrado.", id)); } conexaoBanco.Post.Remove(post); conexaoBanco.SaveChanges(); return RedirectToAction("Index", "Blog"); }
public ActionResult ExcluirComentario(int id) { var conexaoBanco = new ConexaoBanco(); var comentario = (from p in conexaoBanco.Comentarios where p.Id == id select p).FirstOrDefault(); if (comentario == null) { throw new Exception(string.Format("Comentário código {0} não foi encontrado.", id)); } conexaoBanco.Comentarios.Remove(comentario); conexaoBanco.SaveChanges(); var post = (from p in conexaoBanco.Post where p.Id == comentario.IdPost select p).First(); return Redirect(Url.Action("Post", "Blog", new { ano = post.DataPublicacao.Year, mes = post.DataPublicacao.Month, dia = post.DataPublicacao.Day, titulo = post.Titulo, id = post.Id }) + "#comentarios"); }
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); }
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; }
public ActionResult Index() { var conexaoBanco = new ConexaoBanco(); var usuarios = (from p in conexaoBanco.Usuarios orderby p.Nome select p).ToList(); return View(usuarios); }
public ActionResult ExcluirUsuario(int id) { var conexaoBanco = new ConexaoBanco(); var usuario = (from p in conexaoBanco.Usuarios where p.Id == id select p).FirstOrDefault(); if (usuario == null) { throw new Exception(string.Format("Usuário código {0} não foi encontrado.", id)); } conexaoBanco.Usuarios.Remove(usuario); conexaoBanco.SaveChanges(); return RedirectToAction("Index"); }