// 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)); }
// GET: Alumno/Noticias public ActionResult Index() { NoticiasIndexViewModel viewModel = new NoticiasIndexViewModel(); viewModel.Pagina = 1; viewModel.noticias = NoticiaDataAccess.ObtenerNoticia().OrderByDescending(not => not.Fecha).ToList(); viewModel.CalcularPaginacion(viewModel.noticias.Count); viewModel.noticias = viewModel.noticias.Take(viewModel.resultadosPorPagina).ToList(); return(View(viewModel)); }
// GET: Alumno/View/id public ActionResult View(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var Noticia = NoticiaDataAccess.ObtenerNoticia().FirstOrDefault(b => b.NoticiaId == id); if (Noticia == null) { return(HttpNotFound()); } NoticiasViewViewModel viewModel = new NoticiasViewViewModel(); viewModel.Noticia = Noticia; return(View(viewModel)); }
public ActionResult Index(NoticiasIndexViewModel viewModel) { var GrupoUsuarioID = ((ClaimsIdentity)User.Identity).FindFirst("GrupoUsuario").Value; if (GrupoUsuarioID == "") { viewModel.noticias = NoticiaDataAccess.ObtenerNoticia().OrderByDescending(not => not.Fecha).ToList(); } else { viewModel.noticias = db.NoticiaGrupos.Where(ng => ng.GrupoUsuarioId.ToString() == GrupoUsuarioID) .Select(gu => gu.Noticia).OrderByDescending(not => not.Fecha).ToList(); } viewModel.CalcularPaginacion(viewModel.noticias.Count()); int skip = (viewModel.Pagina - 1) * viewModel.resultadosPorPagina; viewModel.noticias = viewModel.noticias.Skip(skip).Take(viewModel.resultadosPorPagina).ToList(); return(View(viewModel)); }