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); }
/// <summary> /// Create a new Comentario object. /// </summary> /// <param name="id">Initial value of the ID property.</param> /// <param name="idUsuario">Initial value of the IdUsuario property.</param> /// <param name="texto">Initial value of the Texto property.</param> /// <param name="fecha">Initial value of the Fecha property.</param> /// <param name="idNoticia">Initial value of the IdNoticia property.</param> public static Comentario CreateComentario(global::System.Int32 id, global::System.Int32 idUsuario, global::System.String texto, global::System.DateTime fecha, global::System.Int32 idNoticia) { Comentario comentario = new Comentario(); comentario.ID = id; comentario.IdUsuario = idUsuario; comentario.Texto = texto; comentario.Fecha = fecha; comentario.IdNoticia = idNoticia; return comentario; }
/// <summary> /// Deprecated Method for adding a new object to the Comentario EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToComentario(Comentario comentario) { base.AddObject("Comentario", comentario); }