コード例 #1
0
        // 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));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        // 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));
        }
コード例 #4
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));
        }
コード例 #5
0
        // 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));
        }
コード例 #6
0
        // 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));
        }
コード例 #7
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));
        }