// GET: Admin/Bloques
        public ActionResult Index(int id, int?pestanya)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var subtema = db.SubTemas.Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == id);

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


            var          bloques = db.Bloques.Include(t => t.Area).Include(t => t.TipoEjercicio).Where(t => t.SubTemaId == id).ToList();
            List <Extra> Extras;
            var          Gramaticas    = db.Gramaticas.Where(gram => gram.SubTemaId == id).OrderBy(d => d.Orden).ToList();
            var          Juegos        = db.Juegos.Include(jue => jue.CategoriaJuego).Where(jue => jue.SubTemaId == id).ToList();
            var          JuegoOnlines  = db.JuegoOnlines.Include(t => t.TipoJuegoOnline).Where(jue => jue.SubTemaId == id).ToList();
            var          SubTemaVideos = db.SubTemaVideos.Where(jue => jue.SubTemaId == id).ToList();

            try
            {
                Extras = db.Extras.Include(ex => ex.CategoriaExtra).Where(jue => jue.SubTemaId == id).ToList();
            }
            catch (SqlException te)
            {
                Extras = new List <Extra>();
            }

            BloquesIndexViewModel viewModel = new BloquesIndexViewModel();

            if (pestanya.HasValue)
            {
                viewModel.pestanyaSeleccionada = pestanya.Value;
            }
            else
            {
                viewModel.pestanyaSeleccionada = (int)PestanyasBloques.Gramaticas;
            }

            viewModel.listadoBloques    = bloques;
            viewModel.listadoGramaticas = Gramaticas;
            viewModel.listadoJuegos     = Juegos;

            viewModel.listadoSubTemaVideos = SubTemaVideos;
            viewModel.listadoExtras        = Extras;

            viewModel.listadoJuegoOnlines = JuegoOnlines;

            viewModel.Subtema = subtema;
            viewModel.InicializarDesplegables();
            return(View(viewModel));
        }
        public ActionResult Index(int id, BloquesIndexViewModel viewModel)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var subtema = db.SubTemas.Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == id);

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

            var busqueda = db.Bloques.Include(t => t.Area).Include(t => t.TipoEjercicio).Where(t => t.SubTemaId == id).ToList();

            if (!string.IsNullOrWhiteSpace(viewModel.TextoBusqueda))
            {
                busqueda = busqueda.Where(x => x.Descripcion.Contains(viewModel.TextoBusqueda) ||
                                          x.TipoEjercicio.Descripcion.Contains(viewModel.TextoBusqueda) ||
                                          x.Area.Descripcion.Contains(viewModel.TextoBusqueda)).ToList();
            }
            if (viewModel.AreaBusquedaId.HasValue)
            {
                busqueda = busqueda.Where(x => x.AreaId == viewModel.AreaBusquedaId.Value).ToList();
            }
            if (viewModel.TipoEjercicioBusquedaId.HasValue)
            {
                busqueda = busqueda.Where(x => x.TipoEjercicioId == viewModel.TipoEjercicioBusquedaId.Value).ToList();
            }

            var Gramaticas    = db.Gramaticas.Where(gram => gram.SubTemaId == id).OrderBy(d => d.Orden).ToList();
            var Juegos        = db.Juegos.Include(jue => jue.CategoriaJuego).Where(jue => jue.SubTemaId == id).ToList();
            var SubTemaVideos = db.SubTemaVideos.Where(jue => jue.SubTemaId == id).ToList();
            var JuegoOnlines  = db.JuegoOnlines.Include(t => t.TipoJuegoOnline).Where(jue => jue.SubTemaId == id).ToList();
            var Extras        = db.Extras.Include(ex => ex.CategoriaExtra).Where(jue => jue.SubTemaId == id).ToList();

            viewModel.listadoJuegos        = Juegos;
            viewModel.listadoGramaticas    = Gramaticas;
            viewModel.listadoBloques       = busqueda;
            viewModel.Subtema              = subtema;
            viewModel.listadoSubTemaVideos = SubTemaVideos;

            viewModel.listadoExtras       = Extras;
            viewModel.listadoJuegoOnlines = JuegoOnlines;
            viewModel.InicializarDesplegables();
            return(View(viewModel));
        }
Beispiel #3
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));
        }