Exemplo n.º 1
0
        //
        // 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);
        }
Exemplo n.º 2
0
        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);
        }