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)); }
// 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)); }
// 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)); }
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()); }