Example #1
0
        public Alumno GetByLogin(LoginWrapper loginWrapper)
        {
            using (var context = new TP_20191CEntities())
            {
                //string encodePassword = Sha1.Encode(loginWrapper.Password);

                return(context.Alumno.FirstOrDefault(x => x.Habilitado && x.Email == loginWrapper.Email &&
                                                     x.Password == loginWrapper.Password));
            }
        }
Example #2
0
 public IEnumerable <Pregunta> GetAll()
 {
     using (var context = new TP_20191CEntities())
     {
         return(context.Pregunta
                .Include("Clase")
                .Include("Tema")
                .Include("RespuestaAlumno")
                .ToList());
     }
 }
Example #3
0
        public static void ActualizarPuntosTotales(int idAlumno, long puntos)
        {
            using (db = new TP_20191CEntities())
            {
                Alumno alumno = (from a in db.Alumnoes where a.IdAlumno == idAlumno select a).FirstOrDefault();

                alumno.PuntosTotales += puntos;

                db.SaveChanges();
            }
        }
Example #4
0
 public static List <RespuestaAlumno> GetQuestionRanking(int idPregunta)
 {
     using (db = new TP_20191CEntities())
     {
         var query = (from ra in db.RespuestaAlumnoes.Include("Alumno")
                      orderby ra.Puntos descending, ra.MejorRespuesta descending
                      where ra.IdPregunta == idPregunta
                      select ra).Take(10);
         return(query.ToList());
     }
 }
Example #5
0
        public static int ValidarExistencia(Pregunta p)
        {
            using (db = new TP_20191CEntities())
            {
                var PreguntaExistente = (from Pregunta in db.Preguntas
                                         where Pregunta.Nro == p.Nro && Pregunta.IdClase == p.IdClase
                                         select Pregunta).Count();

                return(PreguntaExistente);
            }
        }
Example #6
0
 public Pregunta GetById(int id)
 {
     using (var context = new TP_20191CEntities())
     {
         return(context.Pregunta
                .Include("Clase")
                .Include("Tema")
                .Include("RespuestaAlumno")
                .FirstOrDefault(x => x.IdPregunta == id));
     }
 }
Example #7
0
 public List <Alumno> GetRanking()
 {
     using (var context = new TP_20191CEntities())
     {
         return(context.Alumno
                .OrderByDescending(x => x.PuntosTotales)
                .ThenByDescending(x => x.CantidadRespuestasCorrectas)
                .ThenByDescending(x => x.CantidadMejorRespuesta)
                .Take(12)
                .ToList());
     }
 }
Example #8
0
 public static List <Pregunta> GetLastQuestions()
 {
     using (db = new TP_20191CEntities())
     {
         return((from p in db.Preguntas
                 join ra in db.RespuestaAlumnoes
                 on p.IdPregunta equals ra.IdPregunta
                 orderby p.Nro descending
                 where ra.IdResultadoEvaluacion != null
                 select p).Distinct().OrderByDescending(p => p.Nro).Take(2).ToList());
     }
 }
Example #9
0
        public void Delete(int id)
        {
            using (var context = new TP_20191CEntities())
            {
                Pregunta preguntaToDelete = context.Pregunta.FirstOrDefault(x => x.IdPregunta == id);

                if (preguntaToDelete != null)
                {
                    context.Pregunta.Remove(preguntaToDelete);

                    context.SaveChanges();
                }
            }
        }
Example #10
0
        public static void DeletePregunta(int idPregunta)
        {
            using (db = new TP_20191CEntities())
            {
                int cantidadRespuestas = (from ra in db.RespuestaAlumnoes where ra.IdPregunta == idPregunta select ra).Count();
                if (cantidadRespuestas == 0)
                {
                    Pregunta pregunta = (from p in db.Preguntas where p.IdPregunta == idPregunta select p).FirstOrDefault();

                    db.Preguntas.Remove(pregunta);
                    db.SaveChanges();
                }
            }
        }
Example #11
0
        public List <Pregunta> GetUltimasPreguntasCorregidas()
        {
            using (var context = new TP_20191CEntities())
            {
                DateTime fechaHoraActual = DateTime.Now;

                return(context.Pregunta
                       .Include("RespuestaAlumno")
                       .Include("RespuestaAlumno.Alumno")
                       .Where(x => x.RespuestaAlumno.Any(m => m.IdResultadoEvaluacion != null) && x.FechaDisponibleHasta < fechaHoraActual)
                       .OrderByDescending(y => y.Nro)
                       .Take(2)
                       .ToList());
            }
        }
Example #12
0
 public static List <Pregunta> GetUnansweredQuestions(int idAlumno)
 {
     using (db = new TP_20191CEntities())
     {
         return((from p in db.Preguntas.Include("Clase").Include("Tema")
                 join ra in db.RespuestaAlumnoes
                 on p.IdPregunta equals ra.IdPregunta
                 into agroup
                 from bgroup in agroup.DefaultIfEmpty()
                 where p.FechaDisponibleHasta > DateTime.Now &&
                 bgroup.IdRespuestaAlumno == null
                 orderby p.Nro descending
                 select p).ToList());
     }
 }
Example #13
0
 public static Boolean TieneRespuestas(int idpregunta)
 {
     using (db = new TP_20191CEntities())
     {
         RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Profesor").Include("ResultadoEvaluacion") where r.IdPregunta == idpregunta select r).FirstOrDefault();
         if (respuesta != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
Example #14
0
        public int Insert(RespuestaAlumno entity)
        {
            using (var context = new TP_20191CEntities())
            {
                int cantidadRespuestasExistentes = context.RespuestaAlumno.Count(x => x.IdPregunta == entity.IdPregunta);

                entity.Orden = cantidadRespuestasExistentes + 1;

                context.RespuestaAlumno.Add(entity);

                context.SaveChanges();

                return(entity.Orden);
            }
        }
Example #15
0
 public static void UpdatePregunta(Pregunta preguntaActualizada)
 {
     using (db = new TP_20191CEntities())
     {
         Pregunta preguntaMod = (from p in db.Preguntas where p.IdPregunta == preguntaActualizada.IdPregunta select p).FirstOrDefault();
         preguntaMod.Nro     = preguntaActualizada.Nro;
         preguntaMod.IdClase = preguntaActualizada.IdClase;
         preguntaMod.IdTema  = preguntaActualizada.IdTema;
         preguntaMod.FechaDisponibleDesde  = preguntaActualizada.FechaDisponibleDesde;
         preguntaMod.FechaDisponibleHasta  = preguntaActualizada.FechaDisponibleHasta;
         preguntaMod.Pregunta1             = preguntaActualizada.Pregunta1;
         preguntaMod.FechaHoraModificacion = DateTime.Now;
         db.SaveChanges();
     }
 }
Example #16
0
 public List <Pregunta> GetSinCorregir(int?idPregunta = 0)
 {
     using (var context = new TP_20191CEntities())
     {
         return(context.Pregunta
                .Include("Clase")
                .Include("Tema")
                .Include("RespuestaAlumno")
                .Include("RespuestaAlumno.Alumno")
                .Where(x => x.RespuestaAlumno.Any(m => m.IdAlumno == UserCache.IdUsuario &&
                                                  m.IdResultadoEvaluacion == null) &&
                       (idPregunta == 0 || x.IdPregunta == idPregunta))
                .OrderByDescending(y => y.Nro)
                .ToList());
     }
 }
Example #17
0
        public List <Pregunta> GetPreguntasSinResponder()
        {
            using (var context = new TP_20191CEntities())
            {
                int      idAlumnoLogueado = UserCache.IdUsuario;
                DateTime fechaActual      = DateTime.Now;

                return(context.Pregunta
                       .Include("RespuestaAlumno")
                       .Where(x => !x.RespuestaAlumno.Any(y => y.IdAlumno == idAlumnoLogueado) &&
                              ((x.FechaDisponibleHasta == null || x.FechaDisponibleHasta >= fechaActual) &&
                               (x.FechaDisponibleDesde == null || x.FechaDisponibleDesde <= fechaActual)))
                       .OrderByDescending(y => y.Nro)
                       .ToList());
            }
        }
Example #18
0
        public int Insert(Pregunta entity)
        {
            using (var context = new TP_20191CEntities())
            {
                entity.IdProfesorCreacion     = UserCache.IdUsuario;
                entity.FechaHoraCreacion      = DateTime.Now;
                entity.IdProfesorModificacion = UserCache.IdUsuario;
                entity.FechaHoraModificacion  = DateTime.Now;

                context.Pregunta.Add(entity);

                context.SaveChanges();

                return(entity.IdPregunta);
            }
        }
Example #19
0
        public static void ElegirMejorRespuesta(int idRespuesta, int idProfesor)
        {
            using (db = new TP_20191CEntities())
            {
                RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Alumno").Include("Pregunta") where r.IdRespuestaAlumno == idRespuesta select r).FirstOrDefault();
                respuesta.MejorRespuesta = true;
                NotifyAlMejorRsta(respuesta, idProfesor);

                long puntos = CalcularPuntosMejorRespuesta(respuesta);
                respuesta.Puntos = puntos;

                db.SaveChanges();
                // Actualiza datos en la tabla Alumnos
                ActualizarPuntosTotales(respuesta.IdAlumno, puntos);
                ActualizarCantidadDeRespuestas(respuesta.IdAlumno, 4); // Se utiliza 4 para mejor respuesta
            }
        }
Example #20
0
 public static List <RespuestaAlumno> GetRespuestas(int idPregunta, int filtro)
 {
     using (db = new TP_20191CEntities())
     {
         var query = from r in db.RespuestaAlumnoes.Include("Alumno").Include("ResultadoEvaluacion") where r.IdPregunta == idPregunta select r;
         if (filtro > 0)
         {
             query = query.Where(r => r.ResultadoEvaluacion.IdResultadoEvaluacion == filtro);
         }
         else if (filtro == 0)
         {
             query = query.Where(r => r.ResultadoEvaluacion == null);
         }
         query = query.OrderBy(r => r.FechaHoraRespuesta);
         List <RespuestaAlumno> respuestasList = query.ToList();
         return(respuestasList);
     }
 }
Example #21
0
 public static void AddRespuesta(RespuestaAlumno ra, int?idPregunta, int idAlumno)
 {
     using (db = new TP_20191CEntities())
     {
         ra.IdAlumno           = idAlumno;
         ra.IdPregunta         = Convert.ToInt32(idPregunta);
         ra.FechaHoraRespuesta = DateTime.Now;
         ra.Orden = Convert.ToInt32((from Ra in db.RespuestaAlumnoes
                                     where Ra.IdPregunta == idPregunta
                                     orderby Ra.Orden descending
                                     select Ra.Orden).FirstOrDefault()) + 1;
         ra.MejorRespuesta = false;
         var final = ra;
         db.RespuestaAlumnoes.Add(ra);
         db.SaveChanges();
         SendRespuestaMail(ra);
     }
 }
Example #22
0
        public IEnumerable <Pregunta> GetAllRespuestasAlumno(int?idPregunta = 0)
        {
            using (var context = new TP_20191CEntities())
            {
                DateTime fechaActual = DateTime.Now;

                return(context.Pregunta
                       .Include("Clase")
                       .Include("Tema")
                       .Include("RespuestaAlumno")
                       .Include("RespuestaAlumno.Alumno")
                       .Where(x => (idPregunta == 0 || x.IdPregunta == idPregunta)
                              &&
                              (
                                  (x.FechaDisponibleHasta == null && x.FechaDisponibleDesde == null)
                                  ||
                                  (x.FechaDisponibleDesde <= fechaActual)
                              ))
                       .ToList());
            }
        }
Example #23
0
        public void SetMejorRespuesta(int idRespuesta, long puntajeMejorRespuesta)
        {
            using (var context = new TP_20191CEntities())
            {
                RespuestaAlumno respuestaAlumnoToUpdate = context.RespuestaAlumno.FirstOrDefault(x => x.IdRespuestaAlumno == idRespuesta);

                if (respuestaAlumnoToUpdate != null)
                {
                    respuestaAlumnoToUpdate.IdProfesorEvaluador = UserCache.IdUsuario;
                    respuestaAlumnoToUpdate.FechaHoraEvaluacion = DateTime.Now;
                    respuestaAlumnoToUpdate.Puntos         = respuestaAlumnoToUpdate.Puntos + puntajeMejorRespuesta;
                    respuestaAlumnoToUpdate.MejorRespuesta = true;

                    respuestaAlumnoToUpdate.Alumno              = null;
                    respuestaAlumnoToUpdate.Pregunta            = null;
                    respuestaAlumnoToUpdate.Profesor            = null;
                    respuestaAlumnoToUpdate.ResultadoEvaluacion = null;

                    context.SaveChanges();
                }
            }
        }
Example #24
0
        public void UpdateResultadoEval(RespuestaAlumno respuestaAlumno)
        {
            using (var context = new TP_20191CEntities())
            {
                RespuestaAlumno respuestaAlumnoToUpdate = context.RespuestaAlumno.FirstOrDefault(x => x.IdRespuestaAlumno == respuestaAlumno.IdRespuestaAlumno);

                if (respuestaAlumnoToUpdate != null)
                {
                    respuestaAlumnoToUpdate.IdProfesorEvaluador               = respuestaAlumno.IdProfesorEvaluador;
                    respuestaAlumnoToUpdate.FechaHoraEvaluacion               = respuestaAlumno.FechaHoraEvaluacion;
                    respuestaAlumnoToUpdate.IdResultadoEvaluacion             = respuestaAlumno.IdResultadoEvaluacion;
                    respuestaAlumnoToUpdate.RespuestasCorrectasHastaElMomento = respuestaAlumno.RespuestasCorrectasHastaElMomento;
                    respuestaAlumnoToUpdate.Puntos         = respuestaAlumno.Puntos;
                    respuestaAlumnoToUpdate.MejorRespuesta = respuestaAlumno.MejorRespuesta;

                    respuestaAlumnoToUpdate.Alumno              = null;
                    respuestaAlumnoToUpdate.Pregunta            = null;
                    respuestaAlumnoToUpdate.Profesor            = null;
                    respuestaAlumnoToUpdate.ResultadoEvaluacion = null;

                    context.SaveChanges();
                }
            }
        }
Example #25
0
        public static List <PreguntaAlumno> GetPreguntasAlumno(int filtro, int idAlumno)
        {
            using (db = new TP_20191CEntities())
            {
                var query = from p in db.Preguntas.Include("Clase").Include("Tema")
                            join ra in db.RespuestaAlumnoes.Include("ResultadoEvaluacion")
                            on p.IdPregunta equals ra.IdPregunta
                            into agroup
                            from bgroup in (from ra in agroup where ra.IdAlumno == idAlumno select ra).DefaultIfEmpty()
                            where p.FechaDisponibleDesde < DateTime.Now
                            orderby p.Nro descending
                            select new PreguntaAlumno
                {
                    IdPregunta            = p.IdPregunta,
                    Nro                   = p.Nro,
                    Pregunta1             = p.Pregunta1,
                    FechaDisponibleDesde  = p.FechaDisponibleDesde,
                    FechaDisponibleHasta  = p.FechaDisponibleHasta,
                    Clase                 = p.Clase,
                    Tema                  = p.Tema,
                    IdResultadoEvaluacion = bgroup.IdResultadoEvaluacion,
                    ResultadoEvaluacion   = bgroup.ResultadoEvaluacion,
                    Orden                 = bgroup.Orden,
                    Puntos                = bgroup.Puntos,
                    MejorRespuesta        = (bgroup.MejorRespuesta == null ? false : bgroup.MejorRespuesta),
                    Respuesta             = bgroup.Respuesta
                };

                if (filtro >= 0)
                {
                    query = from p in db.Preguntas.Include("Clase").Include("Tema")
                            join ra in db.RespuestaAlumnoes.Include("ResultadoEvaluacion")
                            on p.IdPregunta equals ra.IdPregunta
                            where ra.IdAlumno == idAlumno
                            orderby p.Nro descending
                            select new PreguntaAlumno
                    {
                        IdPregunta            = p.IdPregunta,
                        Nro                   = p.Nro,
                        Pregunta1             = p.Pregunta1,
                        FechaDisponibleDesde  = p.FechaDisponibleDesde,
                        FechaDisponibleHasta  = p.FechaDisponibleHasta,
                        Clase                 = p.Clase,
                        Tema                  = p.Tema,
                        IdResultadoEvaluacion = ra.IdResultadoEvaluacion,
                        ResultadoEvaluacion   = ra.ResultadoEvaluacion,
                        Orden                 = ra.Orden,
                        Puntos                = ra.Puntos,
                        MejorRespuesta        = (ra.MejorRespuesta == null ? false : ra.MejorRespuesta),
                        Respuesta             = ra.Respuesta
                    };
                    if (filtro == 0)
                    {
                        query = query.Where(ra => ra.IdResultadoEvaluacion == null);
                    }
                    else
                    {
                        query = query.Where(ra => ra.IdResultadoEvaluacion == filtro);
                    }
                }
                List <PreguntaAlumno> preguntasList = query.ToList();
                return(preguntasList);
            }
        }