// 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)); }
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)); }