Exemple #1
0
        public ActionResult Index(ForoIndexViewModel viewModel)
        {
            viewModel.categorias        = db.ForoCategorias.ToList();
            viewModel.categoriasLateral = db.ForoCategorias.ToList();

            var hilos = new List <ForoHilo>();

            if (ModelState.IsValid)
            {
                if (!string.IsNullOrEmpty(viewModel.TextoBusqueda))
                {
                    hilos = ForoHiloDataAccess.ObtenerForoHilo().Where(fh => fh.Titulo.ToUpper().Contains(viewModel.TextoBusqueda.ToUpper())).ToList();
                    var idsCategorias = hilos.Select(hil => hil.ForoCategoriaId).ToList();
                    viewModel.categorias = viewModel.categorias.Where(fc => idsCategorias.Contains(fc.ForoCategoriaId)).ToList();
                }
                else
                {
                    foreach (var categoria in viewModel.categorias)
                    {
                        hilos.AddRange(ForoHiloDataAccess.ObtenerForoHilo().Where(fh => fh.ForoCategoriaId == categoria.ForoCategoriaId).Take(3));
                    }
                }
            }
            else
            {
                foreach (var categoria in viewModel.categorias)
                {
                    hilos.AddRange(ForoHiloDataAccess.ObtenerForoHilo().Where(fh => fh.ForoCategoriaId == categoria.ForoCategoriaId).Take(3));
                }
            }

            viewModel.hilos = hilos;

            return(View(viewModel));
        }
Exemple #2
0
        // GET: Alumno/Foro
        public ActionResult Index(int?categoriaId)
        {
            ForoIndexViewModel viewModel = new ForoIndexViewModel();
            var hilos = new List <ForoHilo>();

            viewModel.categoriasLateral = db.ForoCategorias.ToList();

            if (categoriaId.HasValue)
            {
                viewModel.categorias = db.ForoCategorias.Where(cat => cat.ForoCategoriaId == categoriaId.Value).ToList();

                hilos = ForoHiloDataAccess.ObtenerForoHilo().Where(fh => fh.ForoCategoriaId == categoriaId.Value).Take(10).ToList();
            }
            else
            {
                viewModel.categorias = db.ForoCategorias.ToList();
                foreach (var categoria in viewModel.categorias)
                {
                    hilos.AddRange(ForoHiloDataAccess.ObtenerForoHilo().Where(fh => fh.ForoCategoriaId == categoria.ForoCategoriaId).Take(3));
                }
            }


            viewModel.hilos = hilos;

            return(View(viewModel));
        }
Exemple #3
0
        // GET: Usuario/Home
        public ActionResult Index()
        {
            var temas     = TemaDataAccess.ObtenerTemas(db).ToList();
            var temasHome = new List <TemaHome>();

            AuthRepository  authRepository = new AuthRepository();
            ApplicationUser user           = authRepository.FindByName(User.Identity.Name);

            foreach (var tema in temas)
            {
                var subtemas = SubTemaDataAccess.ObtenerSubTemas(db).Where(st => st.TemaId == tema.TemaId).Select(st => st.SubTemaId);

                var subtemasAprobados = db.Examenes.Where(e => e.AlumnoId == user.Id && e.Aprobado &&
                                                          subtemas.Contains(e.SubTemaId)).Select(e => e.SubTemaId).Distinct().Count();

                double porcentaje = (double)subtemasAprobados / subtemas.Count() * 100;

                temasHome.Add(new TemaHome()
                {
                    Porcentaje = (int)porcentaje,
                    Tema       = tema
                });
            }



            var _examenes = db.Examenes.Include(e => e.SubTema).Include(e => e.SubTema.Tema).Where(e => e.AlumnoId == user.Id).OrderByDescending(e => e.FechaExamen).Take(3).ToList();


            HomeIndexViewModel viewModel = new HomeIndexViewModel();

            viewModel.temasHome = temasHome;



            viewModel.NRealizados = db.BloqueRealizados.Count(br => br.AlumnoId == user.Id);
            viewModel.NExtras     = db.ExtraDesbloqueados.Count(br => br.AlumnoId == user.Id);


            var GrupoUsuarioID = ((ClaimsIdentity)User.Identity).FindFirst("GrupoUsuario").Value;

            if (GrupoUsuarioID == "")
            {
                viewModel.Noticias = NoticiaDataAccess.ObtenerNoticia().OrderByDescending(not => not.Fecha).Take(3).ToList();
            }
            else
            {
                viewModel.Noticias = db.NoticiaGrupos.Where(ng => ng.GrupoUsuarioId.ToString() == GrupoUsuarioID)
                                     .Select(gu => gu.Noticia).OrderByDescending(not => not.Fecha).Take(3).ToList();
            }

            viewModel.Hilos = ForoHiloDataAccess.ObtenerForoHilo().Take(3).ToList();


            viewModel.Puntos = user.PuntosActual;

            viewModel.Examenes = _examenes;

            return(View(viewModel));
        }
Exemple #4
0
        public string NoLeidos()
        {
            var userId = ((ClaimsIdentity)User.Identity).FindFirst("UserId").Value;

            var numeroHilos = ForoHiloDataAccess.ObtenerForoHilo().Count();
            var idsHilos    = ForoHiloDataAccess.ObtenerForoHilo().Select(hilo => hilo.ForoHiloId).ToList();

            var numeroHilosLeidos = db.ForoHiloLeidos.Count(fhl => fhl.AlumnoId == userId && idsHilos.Contains(fhl.ForoHiloId));
            int total             = numeroHilos - numeroHilosLeidos;

            return(total.ToString());
        }