// // GET: /Noticia/Comentarios/5 public ActionResult Comentarios(int id) { //Recuperamos la noticia. Noticia noticia = db.Noticia.Include("Usuario").Single(n => n.ID == id); //Si es privada y no estamos logueados no se puede ver. if ((!Request.IsAuthenticated) && (noticia.EsPrivada)) { return RedirectToAction("Index", "Home"); } //Convertimos el contenido de la noticia a HTML. noticia.Contenido = Utils.Utils.TranslateBBCodeToHtml(noticia.Contenido, HttpContext); //La convertimos al modelo para mostrar. NoticiaModel notMod = Utils.Utils.ConvertNoticiaToNoticiaModel(noticia); //Recuperamos los comentarios de la noticia y los pasamos en un ViewBag. List<Comentario> comentarios = db.Comentario.Include("Usuario").Where(c => c.IdNoticia == noticia.ID).ToList(); //Convertimos el contenido de los comentarios a HTML. comentarios.ForEach(g => g.Texto = Utils.Utils.TranslateBBCodeToHtml(g.Texto, HttpContext)); //Los pasamos en un ViewBag. ViewBag.Comentarios = comentarios; //Cogemos los usuarios con su número de posteos. List<Usuario> userPosts = db.Usuario.Include("Comentario").ToList(); List<PosteosModel> posteos = new List<PosteosModel>(); foreach (Usuario user in userPosts) { PosteosModel post = new PosteosModel() { IdUsuario = user.ID, TotalPosts = user.Comentario.Count }; posteos.Add(post); } //Lo metemos en un ViewBag. ViewBag.Posteos = posteos; return View(notMod); }
public ActionResult Comentarios(int id, FormCollection collection) { //Insertamos el comentario. Comentario comentario = new Comentario(); comentario.Texto = collection["contenido"].ToString().Replace("\r\n", "<br/>"); comentario.IdUsuario = UsuarioLogueado.ID; comentario.Fecha = DateTime.Now; comentario.IdNoticia = id; //Recuperamos el último comentario insertado. Comentario ultimoComentario = db.Comentario.OrderByDescending(g => g.ID).FirstOrDefault(); //Comprobamos si el último comentario insertado es el mismo, por si le han dado doble click. //Solo lo inserta, si es distinto. if (!ultimoComentario.Texto.Equals(comentario.Texto)) { //Guardamos el comentario. db.Comentario.AddObject(comentario); db.SaveChanges(); } //Recuperamos la noticia. Noticia noticia = db.Noticia.Include("Usuario").Single(n => n.ID == id); //Convertimos el contenido de la noticia a HTML. noticia.Contenido = Utils.Utils.TranslateBBCodeToHtml(noticia.Contenido, HttpContext); //La convertimos al modelo para mostrar. NoticiaModel notMod = Utils.Utils.ConvertNoticiaToNoticiaModel(noticia); //Recuperamos los comentarios de la noticia y los pasamos en un ViewBag. List<Comentario> comentarios = db.Comentario.Include("Usuario").Where(c => c.IdNoticia == noticia.ID).ToList(); //Convertimos el contenido de los comentarios a HTML. comentarios.ForEach(g => g.Texto = Utils.Utils.TranslateBBCodeToHtml(g.Texto, HttpContext)); //Los pasamos en un ViewBag. ViewBag.Comentarios = comentarios; //Cogemos los usuarios con su número de posteos. List<Usuario> userPosts = db.Usuario.Include("Comentario").ToList(); List<PosteosModel> posteos = new List<PosteosModel>(); foreach (Usuario user in userPosts) { PosteosModel post = new PosteosModel() { IdUsuario = user.ID, TotalPosts = user.Comentario.Count }; posteos.Add(post); } //Lo metemos en un ViewBag. ViewBag.Posteos = posteos; return View(notMod); }