Exemplo n.º 1
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));
        }
        // 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));
        }