예제 #1
0
        // GET: Alumno/Foro/Hilo
        public ActionResult Hilo(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var hilo = db.ForoHilos.Include(bl => bl.ForoCategoria).Include(bl => bl.Mensajes).FirstOrDefault(b => b.ForoHiloId == id);

            if (hilo == null)
            {
                return(HttpNotFound());
            }

            var userId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value;

            var existe = db.ForoHiloLeidos.FirstOrDefault(fhl => fhl.AlumnoId == userId && fhl.ForoHiloId == id);

            if (existe == null)
            {
                ForoHiloLeido foroLeido = new ForoHiloLeido()
                {
                    AlumnoId   = userId,
                    ForoHiloId = id
                };

                db.ForoHiloLeidos.Add(foroLeido);
                db.SaveChanges();
            }

            ForoHiloViewModel viewModel = new ForoHiloViewModel();

            viewModel.hilo = hilo;
            return(View(viewModel));
        }
예제 #2
0
        public ActionResult Hilo(ForoHiloViewModel viewModel, int id)
        {
            var hilo = db.ForoHilos.Include(bl => bl.ForoCategoria).Include(bl => bl.Mensajes).FirstOrDefault(b => b.ForoHiloId == id);

            viewModel.hilo = hilo;

            if (!string.IsNullOrEmpty(viewModel.ForoMensaje.Texto))
            {
                var userId        = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value;
                var NombreUsuario = ((ClaimsIdentity)User.Identity).FindFirst("NombreUsuario").Value;

                viewModel.hilo.AlumnoRespuestaId = userId;
                viewModel.hilo.RespondidoPor     = NombreUsuario;
                viewModel.hilo.FechaRespuesta    = DateTime.Now;
                if (User.IsInRole("Admin"))
                {
                    viewModel.hilo.RespondidoPorAdmin = true;
                }
                else
                {
                    viewModel.hilo.RespondidoPorAdmin = false;
                }

                db.Entry(viewModel.hilo).State = EntityState.Modified;

                viewModel.ForoMensaje.ForoHiloId    = viewModel.hilo.ForoHiloId;
                viewModel.ForoMensaje.CreadoPor     = NombreUsuario;
                viewModel.ForoMensaje.AlumnoId      = userId;
                viewModel.ForoMensaje.FechaCreacion = DateTime.Now;


                if (User.IsInRole("Admin"))
                {
                    viewModel.ForoMensaje.Admin = true;
                }
                else
                {
                    viewModel.ForoMensaje.Admin = false;
                }

                db.ForoMensajes.Add(viewModel.ForoMensaje);
                db.SaveChanges();

                var leidos = db.ForoHiloLeidos.Where(fhl => fhl.ForoHiloId == viewModel.hilo.ForoHiloId).ToList();

                db.ForoHiloLeidos.RemoveRange(leidos);
                db.SaveChanges();

                return(RedirectToAction("Hilo", "Foro", new { id = viewModel.hilo.ForoHiloId }));
            }


            return(View(viewModel));
        }