Пример #1
0
        // GET: Admin/Contenidos
        public ActionResult Index(int id, int gramaticaId)
        {
            if (id == null || gramaticaId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var subtema   = SubTemaDataAccess.ObtenerSubTemas(db).Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == id);
            var gramatica = GramaticaDataAccess.ObtenerGramaticas(db).FirstOrDefault(g => g.GramaticaId == gramaticaId);

            if (subtema == null || gramatica == null)
            {
                return(HttpNotFound());
            }
            if (!ComprobarAccesoSubTema(id))
            {
                return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" }));
            }



            var userId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value;
            var frases = db.Frases.Where(fr => fr.GramaticaId == gramaticaId).OrderBy(v => v.Palabra_en).ToList();


            FrasesIndexViewModel viewModel = new FrasesIndexViewModel();

            viewModel.glosario  = db.FraseGlosarios.Where(vg => vg.AlumnoId == userId).Select(vg => vg.FraseId).ToList();
            viewModel.frases    = frases;
            viewModel.Subtema   = subtema;
            viewModel.Gramatica = gramatica;

            return(View(viewModel));
        }
Пример #2
0
        // 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));
        }
Пример #3
0
        // GET: Alumno/Vocabularios/Gramatica
        public ActionResult Gramatica(int id, int gramaticaId, string idioma)
        {
            if (id == null || gramaticaId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var subtema   = SubTemaDataAccess.ObtenerSubTemas(db).Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == id);
            var gramatica = GramaticaDataAccess.ObtenerGramaticas(db).Include(gt => gt.Vocabularios.Select(v => v.CategoriaVocabulario)).FirstOrDefault(g => g.GramaticaId == gramaticaId);

            if (subtema == null || gramatica == null)
            {
                return(HttpNotFound());
            }

            if (!ComprobarAccesoSubTema(id))
            {
                return(RedirectToAction("SinAcceso", "Home", new { Area = "Alumno" }));
            }

            if (string.IsNullOrEmpty(idioma))
            {
                idioma = "en";
            }


            var vocabulario = new List <Vocabulario>();

            if (idioma == "en")
            {
                vocabulario = gramatica.Vocabularios.OrderBy(v => v.Palabra_en).ToList();
            }
            else
            {
                vocabulario = gramatica.Vocabularios.OrderBy(v => v.Palabra_es).ToList();
            }

            VocabulariosGramaticaViewModel viewModel = new VocabulariosGramaticaViewModel();

            viewModel.vocabulario = vocabulario;
            viewModel.Subtema     = subtema;
            viewModel.Gramatica   = gramatica;
            viewModel.Idioma      = idioma;

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

            viewModel.glosario = db.VocabularioGlosarios.Where(vg => vg.AlumnoId == userId).Select(vg => vg.VocabularioId).ToList();

            return(View(viewModel));
        }
Пример #4
0
        // 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));
        }