示例#1
0
        public static void ActualizarCantidadDeRespuestas(int idAlumno, int idResultadoEvaluacion)
        {
            using (db = new TP_20191CEntities())
            {
                Alumno alumno = (from a in db.Alumnoes where a.IdAlumno == idAlumno select a).FirstOrDefault();

                if (idResultadoEvaluacion == 1) // Correcta
                {
                    alumno.CantidadRespuestasCorrectas++;
                }
                if (idResultadoEvaluacion == 2) // Regular
                {
                    alumno.CantidadRespuestasRegular++;
                }
                if (idResultadoEvaluacion == 3) // Mal
                {
                    alumno.CantidadRespuestasMal++;
                }
                if (idResultadoEvaluacion == 4) // Mejor respuesta
                {
                    alumno.CantidadMejorRespuesta++;
                }
                db.SaveChanges();
            }
        }
示例#2
0
        public static void CorregirRespuesta(int idRespuesta, int resultadoEvaluacion, int idProfesor)
        {
            using (db = new TP_20191CEntities())
            {
                RespuestaAlumno respuesta = (from r in db.RespuestaAlumnoes.Include("Profesor").Include("ResultadoEvaluacion").Include("Alumno") where r.IdRespuestaAlumno == idRespuesta select r).FirstOrDefault();

                int cantidadRespuestasCorrectas = (from r in db.RespuestaAlumnoes where r.IdPregunta == respuesta.IdPregunta && r.IdResultadoEvaluacion == 1 select r).Count();

                // Setea 1, 2 o 3 en evaluación, profesor que corrigió, cantRespuestasCorrectas y FechaHoraEvaluacion
                respuesta.IdResultadoEvaluacion             = resultadoEvaluacion;
                respuesta.IdProfesorEvaluador               = idProfesor;
                respuesta.RespuestasCorrectasHastaElMomento = cantidadRespuestasCorrectas;
                respuesta.FechaHoraEvaluacion               = DateTime.Now;

                long puntos = 0;
                if (resultadoEvaluacion != 3) // Si no es incorrecta
                {
                    puntos = CalcularPuntosDeRespuesta(respuesta);
                }
                respuesta.Puntos = puntos;

                db.SaveChanges();

                // Actualiza datos en la tabla Alumnos
                ActualizarPuntosTotales(respuesta.IdAlumno, puntos);
                ActualizarCantidadDeRespuestas(respuesta.IdAlumno, resultadoEvaluacion);
            }
        }
示例#3
0
        public void Update(Pregunta entity)
        {
            using (var context = new TP_20191CEntities())
            {
                Pregunta preguntaToUpdate =
                    context.Pregunta.FirstOrDefault(x => x.IdPregunta == entity.IdPregunta);

                if (preguntaToUpdate != null)
                {
                    preguntaToUpdate.IdProfesorModificacion = UserCache.IdUsuario;
                    preguntaToUpdate.FechaHoraModificacion  = DateTime.Now;

                    preguntaToUpdate.Nro     = entity.Nro;
                    preguntaToUpdate.IdClase = entity.IdClase;
                    preguntaToUpdate.IdTema  = entity.IdTema;

                    preguntaToUpdate.FechaDisponibleDesde = entity.FechaDisponibleDesde;
                    preguntaToUpdate.FechaDisponibleHasta = entity.FechaDisponibleHasta;

                    preguntaToUpdate.Pregunta1 = entity.Pregunta1;

                    entity.Profesor = null;
                    entity.Profesor = null;
                    entity.Clase    = null;
                    entity.Tema     = null;

                    context.SaveChanges();
                }
            }
        }
示例#4
0
 public static void CrearPregunta(Pregunta p)
 {
     using (db = new TP_20191CEntities())
     {
         db.Preguntas.Add(p);
         db.SaveChanges();
     }
 }
示例#5
0
 public static void AddPregunta(Pregunta preguntaNueva)
 {
     using (db = new TP_20191CEntities())
     {
         db.Preguntas.Add(preguntaNueva);
         db.SaveChanges();
     }
 }
示例#6
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();
            }
        }
示例#7
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();
                }
            }
        }
示例#8
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();
                }
            }
        }
示例#9
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();
     }
 }
示例#10
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);
            }
        }
示例#11
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);
            }
        }
示例#12
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
            }
        }
示例#13
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);
     }
 }
示例#14
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();
                }
            }
        }
示例#15
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();
                }
            }
        }