Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/EjercitarServer
diff options
context:
space:
mode:
authorsreyes <sreyes@dataworks.com.py>2014-10-11 16:30:52 (GMT)
committer sreyes <sreyes@dataworks.com.py>2014-10-11 16:30:52 (GMT)
commitde8434c76fcef2c174147d452ea03f7af2033b95 (patch)
tree9862f8d3acefa1d10eb3dbc84de17a7dddea8651 /EjercitarServer
parent0a25b660f3decececd0bd6c88761c2d4a492b4ed (diff)
seleccionUtilidadMax - se elijen ejercicios que no hayan sido respondidos en la Sesion
Diffstat (limited to 'EjercitarServer')
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSBean.java39
1 files changed, 34 insertions, 5 deletions
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
index 1bd9f69..0ba5911 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
@@ -125,7 +125,7 @@ public class EjercitarWSBean implements EjercitarWSRemote {
Alumno alumno = em.find(Alumno.class, idAlumno);
//
if(idEjercicio != 0)
- responderEjercicio(idEjercicio, respuesta, alumno, tarea.getAsignatura().getIdAsignatura());
+ responderEjercicio(idEjercicio, respuesta, alumno, tarea.getAsignatura().getIdAsignatura(), tarea);
//
@@ -137,7 +137,7 @@ public class EjercitarWSBean implements EjercitarWSRemote {
return ejercicioElement;
}
- private void responderEjercicio(int idEjercicio, String respuesta, Alumno alumno, int idAsignatura) {
+ private void responderEjercicio(int idEjercicio, String respuesta, Alumno alumno, int idAsignatura, Tarea tarea) {
Ejercicio ejercicio = em.find(Ejercicio.class, idEjercicio);
Network net1 = new Network();
@@ -165,6 +165,21 @@ public class EjercitarWSBean implements EjercitarWSRemote {
net1.clearEvidence(nombreEjercicio);
net1.updateBeliefs();
net1.writeFile("/home/redes/" + nombreRed);
+
+
+ //asociar ejercicio con sesion
+ //para obtener la sesion anterior.
+ Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.idSesion desc");
+ query.setParameter("alumno", alumno.getIdAlumno());
+ query.setParameter("tarea", tarea.getIdTarea());
+ query.setMaxResults(1);
+ Sesion sesionAnterior = (Sesion) query.getSingleResult();
+
+ List<Ejercicio> respondidos = sesionAnterior.getEjercicioList();
+ respondidos.add(ejercicio);
+ sesionAnterior.setEjercicioList(respondidos);
+ em.persist(sesionAnterior);
+
}
@WebMethod
@@ -271,14 +286,28 @@ public class EjercitarWSBean implements EjercitarWSRemote {
//System.out.println(hUtilidades);
TreeMap<Double, Ejercicio> tUtilidades = new TreeMap<Double, Ejercicio>(hUtilidades);
///System.out.println(tUtilidades);
+
+
+ //para obtener la sesion anterior.
+ Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.idSesion desc");
+ query.setParameter("alumno", alumno.getIdAlumno());
+ query.setParameter("tarea", tarea.getIdTarea());
+ query.setMaxResults(1);
+ Sesion sesionAnterior = (Sesion) query.getSingleResult();
+
//int i = tUtilidades.size();
Map.Entry<Double, Ejercicio> valor;
+ Map.Entry<Double, Ejercicio> primerValor;
+ valor = tUtilidades.pollLastEntry();
+ primerValor = valor;
while(true) {
- valor = tUtilidades.pollLastEntry();
- if( valor.getValue().getIdEjercicio()!= idEjercicioAnterior) {
- return valor.getValue();
+ if (valor == null) return primerValor.getValue();
+ Ejercicio e = valor.getValue();
+ if(!sesionAnterior.getEjercicioList().contains(e)) {
+ return e;
}
+ valor = tUtilidades.pollLastEntry();
}
//return ejercicio;