// GET: Admin/Contenidos public ActionResult Index(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var bloque = BloqueDataAccess.ObtenerBloques(db).Include(bl => bl.Area).Include(bl => bl.SubTema.Tema).FirstOrDefault(b => b.BloqueId == id); if (bloque == null) { return(HttpNotFound()); } if (!ComprobarAccesoSubTema(bloque.SubTemaId)) { return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" })); } ContenidoHelper.MarcarEjercicioHecho(id); var MatchThePictures = db.MatchThePictures.Where(sk => sk.BloqueId == id).ToList(); MatchThePictures.Shuffle(); MatchThePictureIndexViewModel viewModel = new MatchThePictureIndexViewModel(); viewModel.bloque = bloque; viewModel.MatchThePictures = MatchThePictures; viewModel.Imagenes = MatchThePictures.Select(mtw => mtw.UrlImagen).ToList(); viewModel.Imagenes.Shuffle(); viewModel.Palabras = MatchThePictures.Select(mtw => mtw.PalabraImagen).ToList(); viewModel.Palabras.Shuffle(); return(View(viewModel)); }
public static List <Mistake> ObtenerMistakes() { AuthContext db = new AuthContext(); var userId = ((ClaimsIdentity)HttpContext.Current.User.Identity).FindFirst("UserId").Value; var bloques = BloqueDataAccess.ObtenerBloques(db).Select(bloque => bloque.BloqueId); return(db.Mistakes.Where(br => br.AlumnoId == userId && bloques.Contains(br.BloqueId)).ToList()); }
// GET: Admin/Contenidos public ActionResult Index(int id, bool?mistakes) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var bloque = BloqueDataAccess.ObtenerBloques(db).Include(bl => bl.Area).Include(bl => bl.SubTema.Tema).FirstOrDefault(b => b.BloqueId == id); if (bloque == null) { return(HttpNotFound()); } if (!ComprobarAccesoSubTema(bloque.SubTemaId)) { return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" })); } if (bloque.AreaId == 9) { return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" })); } bool noMostrarMistakes = ContenidoHelper.MarcarEjercicioHecho(id); var userId = ((ClaimsIdentity)HttpContext.User.Identity).FindFirst("UserId").Value; List <Test> tests = new List <Test>(); if (mistakes.GetValueOrDefault()) { var mistakeIds = db.Mistakes.Where(mist => mist.BloqueId == id && mist.AlumnoId == userId).Select(mist => mist.PreguntaId).ToList(); tests = db.Tests.Where(sk => sk.BloqueId == id && mistakeIds.Contains(sk.Id)).ToList(); } else { tests = db.Tests.Where(sk => sk.BloqueId == id).ToList(); } tests.Shuffle(); TestIndexViewModel viewModel = new TestIndexViewModel(); viewModel.bloque = bloque; viewModel.tests = tests; if (noMostrarMistakes) { viewModel.mistakes = new List <int>(); } else { viewModel.mistakes = db.Mistakes.Where(mist => mist.BloqueId == id && mist.AlumnoId == userId).Select(mist => mist.PreguntaId).ToList(); } return(View(viewModel)); }
// GET: Admin/SubTemas public ActionResult Index(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var tema = TemaDataAccess.ObtenerTemas(db).FirstOrDefault(te => te.TemaId == id); if (tema == null) { return(HttpNotFound()); } var userId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value; var subTemas = SubTemaDataAccess.ObtenerSubTemas(db).Include(s => s.Tema).Where(subtema => subtema.TemaId == id).OrderBy(d => d.Orden).ToList(); var listaSubtemaIds = subTemas.Select(st => st.SubTemaId).ToList(); var subtemasDesbloqueados = db.SubTemaDesbloqueados.Where(sd => sd.AlumnoId == userId && listaSubtemaIds.Contains(sd.SubTemaId)).Select(sd => sd.SubTemaId).ToList(); SubTemasIndexViewModel viewModel = new SubTemasIndexViewModel(); viewModel.Tema = tema; viewModel.listadoSubTemasBloqueados = subTemas.Where(st => !subtemasDesbloqueados.Contains(st.SubTemaId)).ToList(); viewModel.listadoSubTemasDesbloqueados = subTemas.Where(st => subtemasDesbloqueados.Contains(st.SubTemaId)).ToList(); if (User.IsInRole("Admin")) { viewModel.listadoSubTemasBloqueados = new List <SubTema>(); viewModel.listadoSubTemasDesbloqueados = subTemas.ToList(); } var gramaticas = GramaticaDataAccess.ObtenerGramaticas(db).Include(gt => gt.Vocabularios).Where(gr => listaSubtemaIds.Contains(gr.SubTemaId)); var gramaticasIds = gramaticas.Select(gr => gr.GramaticaId).ToList(); viewModel.NUnidades = gramaticasIds.Count; viewModel.NFrases = db.Frases.Count(f => gramaticasIds.Contains(f.GramaticaId)); viewModel.NVocabulario = gramaticas.SelectMany(gr => gr.Vocabularios).Count(); viewModel.NPracticas = BloqueDataAccess.ObtenerBloques(db).Count(b => listaSubtemaIds.Contains(b.SubTemaId)); viewModel.NLecciones = listaSubtemaIds.Count; viewModel.TemaSuperado = (db.Examenes.Count(e => e.AlumnoId == userId && e.Aprobado && e.SubTema.TemaId == id) == listaSubtemaIds.Count); viewModel.examenesDesbloqueados = db.ExamenDesbloqueados.Where(ex => ex.AlumnoId == userId).Select(ex => ex.SubTemaId).ToList(); viewModel.listadoSubTemasAcceso = db.SubTemaAccesoUsuarios.Where(sau => sau.AlumnoId == userId).Select(sau => sau.SubTemaId).ToList(); return(View(viewModel)); }
// GET: Admin/Contenidos public ActionResult Index(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var bloque = BloqueDataAccess.ObtenerBloques(db).Include(bl => bl.Area).Include(bl => bl.SubTema.Tema).FirstOrDefault(b => b.BloqueId == id); if (bloque == null) { return(HttpNotFound()); } if (!ComprobarAccesoSubTema(bloque.SubTemaId)) { return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" })); } ContenidoHelper.MarcarEjercicioHecho(id); var crucigrama = db.Crucigramas.Include(cr => cr.CasillaCrucigramas).FirstOrDefault(sk => sk.BloqueId == id); CrucigramaIndexViewModel viewModel = new CrucigramaIndexViewModel(); viewModel.bloque = bloque; viewModel.Crucigrama = crucigrama; viewModel.Letras = new string[12][]; viewModel.LetrasRespuesta = new string[12][]; for (int i = 0; i < 12; i++) { viewModel.Letras[i] = new string[12]; viewModel.LetrasRespuesta[i] = new string[12]; for (int j = 0; j < 12; j++) { var casilla = viewModel.Crucigrama.CasillaCrucigramas.FirstOrDefault(cr => cr.PosH == j && cr.PosV == i); if (casilla != null) { viewModel.Letras[i][j] = casilla.letra; } viewModel.LetrasRespuesta[i][j] = ""; } } return(View(viewModel)); }
// GET: Admin/Contenidos public ActionResult Index(int id, int areaId) { if (id == null || areaId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var subtema = SubTemaDataAccess.ObtenerSubTemas(db).Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == id); var area = db.Areas.SingleOrDefault(s => s.AreaId == areaId); if (subtema == null || area == null) { return(HttpNotFound()); } if (!ComprobarAccesoSubTema(id)) { return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" })); } var realizados = ContenidoHelper.ObtenerEjercicioHecho(id, areaId); var conMistakes = ContenidoHelper.ObtenerEjerciciosConMistakes(id, areaId); var bloques = BloqueDataAccess.ObtenerBloques(db).Include(t => t.TipoEjercicio).Where(t => t.SubTemaId == id && t.AreaId == areaId).ToList(); var bloquesIds = bloques.Select(bl => bl.BloqueId).ToList(); BloquesIndexViewModel viewModel = new BloquesIndexViewModel(); viewModel.listadoBloques = bloques; var userId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value; viewModel.bloquesDesbloqueados = db.BloqueDesbloqueados.Where(ex => ex.AlumnoId == userId && bloquesIds.Contains(ex.BloqueId)).Select(ex => ex.BloqueId).ToList(); viewModel.Subtema = subtema; viewModel.Area = area; viewModel.realizados = realizados.Select(br => br.BloqueId).ToList(); viewModel.conMistakes = conMistakes.Select(br => br.BloqueId).ToList(); return(View(viewModel)); }
// GET: Admin/SubTemas public ActionResult View(int id, int?gramaticaId) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var subTema = SubTemaDataAccess.ObtenerSubTemas(db).FirstOrDefault(su => su.SubTemaId == id); if (subTema == null) { return(HttpNotFound()); } if (!ComprobarAccesoSubTema(id)) { return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" })); } SubTemasViewViewModel viewModel = new SubTemasViewViewModel(); viewModel.Tema = TemaDataAccess.ObtenerTemas(db).FirstOrDefault(te => te.TemaId == subTema.TemaId); if (viewModel.Tema == null) { return(HttpNotFound()); } viewModel.SubTema = subTema; var bloques = BloqueDataAccess.ObtenerBloques(db).Include(t => t.Area).Include(t => t.TipoEjercicio).Where(t => t.SubTemaId == id); var areas = db.Areas.Where(a => a.Orden.HasValue).OrderBy(a => a.Orden.Value).ToList(); var listadoAreas = new List <AreaContenidos>(); foreach (var area in areas) { listadoAreas.Add(new AreaContenidos { Area = area, NumContenidos = bloques.Where(c => c.AreaId == area.AreaId).Count() }); } viewModel.listadoAreas = listadoAreas; var Gramaticas = GramaticaDataAccess.ObtenerGramaticas(db).Include(gram => gram.GramaticaCuerpo).Where(gram => gram.SubTemaId == id).OrderBy(d => d.Orden).ToList(); viewModel.Gramaticas = Gramaticas; if (gramaticaId.HasValue) { viewModel.GramaticaMostrar = GramaticaDataAccess.ObtenerGramaticas(db).Include(gram => gram.GramaticaCuerpo).FirstOrDefault(gr => gr.GramaticaId == gramaticaId.Value); } else { viewModel.GramaticaMostrar = Gramaticas.FirstOrDefault(); } var userId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value; viewModel.MostrarExamen = (db.Examenes.Where(e => e.AlumnoId == userId && e.SubTemaId == id && e.Aprobado).FirstOrDefault() == null); viewModel.examenesDesbloqueados = db.ExamenDesbloqueados.Where(ex => ex.AlumnoId == userId && ex.SubTemaId == id).Select(ex => ex.SubTemaId).ToList(); return(View(viewModel)); }