Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/EjercitarServer
diff options
context:
space:
mode:
authorcecigg <caggsld@gmail.com>2013-11-20 22:26:16 (GMT)
committer cecigg <caggsld@gmail.com>2013-11-20 22:26:16 (GMT)
commitae09e23086c92870490d809cd8f1a6e1bc0f02b4 (patch)
treee3e25936dac21c6ec91012b29c7b2d6b089c7216 /EjercitarServer
parent8c7ee8f64054a37bc45595cd4a115d38bed56b78 (diff)
se agrego metodos de getCriterioParada y se modifico el metodo getDatosAlumno. se modifico la entidad tarea y sesion.
se modifico te concepto y ejercicios jsp para incluir los campos numericos.
Diffstat (limited to 'EjercitarServer')
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSBean.java226
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSRemote.java2
2 files changed, 145 insertions, 83 deletions
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
index 4600b79..f58e0c4 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
@@ -32,65 +32,81 @@ import model.Tema;
* Session Bean implementation class EjercitarWS
*/
@WebService
-@SOAPBinding(style=SOAPBinding.Style.RPC)
+@SOAPBinding(style = SOAPBinding.Style.RPC)
@Remote(EjercitarWSRemote.class)
@Stateless
public class EjercitarWSBean implements EjercitarWSRemote {
- @PersistenceContext
- EntityManager em;
+ @PersistenceContext
+ EntityManager em;
+
/**
- * Default constructor.
- */
- public EjercitarWSBean() {
-
- }
-
- @WebMethod
- public String getDatosAlumno(int idAlumno) {
- // TODO Auto-generated method stub
- System.out.println("getdatosalumno");
- Alumno alumno = em.find(Alumno.class, idAlumno);
- String nombreApellido = alumno.getNombre() + "#" + alumno.getApellido();
- return nombreApellido;
- }
-
+ * Default constructor.
+ */
+ public EjercitarWSBean() {
+
+ }
+
@WebMethod
- public List<Tarea> getTareas(int idAlumno) {
- // TODO Auto-generated method stub
+ public String getDatosAlumno(int idAlumno) {
+ // TODO Auto-generated method stub
+ System.out.println("getdatosalumno");
+ Alumno alumno = em.find(Alumno.class, idAlumno);
+ String nombreApellido = alumno.getNombre() + "#" + alumno.getApellido();
+ return nombreApellido;
+ }
+
+ @WebMethod
+ public List<Tarea> getTareas(int idAlumno) {
+ // TODO Auto-generated method stub
System.out.println(idAlumno);
Alumno alumno = em.find(Alumno.class, idAlumno);
System.out.println(alumno.getApellido());
Curso curso = getCurso(alumno);
List<Tarea> listaTareas = curso.getTareaList();
System.out.println("cant tareas:" + listaTareas.size());
- return (List<Tarea>) listaTareas;
- }
+
+ Query query = em.createQuery("SELECT DISTINCT t from Tarea t join t.sesionList s where s.alumno = :alumno and s.estadoTerminado = false and s.tarea in (:tareas)");
+
+ query.setParameter("alumno", alumno);
+ query.setParameter("tareas", listaTareas);
+ List<Tarea> listaTareasDisponibles = query.getResultList();
+
+
+ System.out.println("cant tareas1:" + listaTareasDisponibles.size());
+
+
+ return (List<Tarea>) listaTareasDisponibles;
+ }
+
private Curso getCurso(Alumno alumno) {
Curso curso = alumno.getCurso();
System.out.println(curso.getTareaList().toString());
return curso;
}
-
+
@WebMethod
- public Ejercicio getSiguienteEjercicio(int idTarea, int idAlumno, int idEjercicio, String respuesta) {
+ public Ejercicio getSiguienteEjercicio(int idTarea, int idAlumno,
+ int idEjercicio, String respuesta) {
// TODO Auto-generated method stub
Tarea tarea = em.find(Tarea.class, idTarea);
Alumno alumno = em.find(Alumno.class, idAlumno);
//
- if(idEjercicio != 0)
+ if (idEjercicio != 0)
responderEjercicio(idEjercicio, respuesta, alumno);
-
+
//
-
+
Ejercicio ejercicio = seleccionAleatoria(tarea);
- //seleccionUtilidadMax(tarea, alumno);
- System.out.println(ejercicio.getRespuestaList().toString()); // NO BORRAR
- return ejercicio;
+ // seleccionUtilidadMax(tarea, alumno);
+ System.out.println(ejercicio.getRespuestaList().toString()); // NO
+ // BORRAR
+ return ejercicio;
}
-
- private void responderEjercicio(int idEjercicio, String respuesta, Alumno alumno) {
+
+ private void responderEjercicio(int idEjercicio, String respuesta,
+ Alumno alumno) {
Ejercicio ejercicio = em.find(Ejercicio.class, idEjercicio);
Network net1 = new Network();
String nombreRed = "red_alumno_" + alumno.getIdAlumno() + ".xdsl";
@@ -98,36 +114,37 @@ public class EjercitarWSBean implements EjercitarWSRemote {
net1.updateBeliefs();
String nombreEjercicio = "E" + idEjercicio;
System.out.println("proba d");
- if(respuesta.equals(ejercicio.getRespuesta().getDescripcion())){
+ if (respuesta.equals(ejercicio.getRespuesta().getDescripcion())) {
net1.setEvidence(nombreEjercicio, "Correcto");
} else {
net1.setEvidence(nombreEjercicio, "Incorrecto");
}
net1.updateBeliefs();
-
+
List<Concepto> conceptoList = ejercicio.getConceptoList();
- for(Concepto concepto : conceptoList) {
+ for (Concepto concepto : conceptoList) {
String nombreConcepto = concepto.getNombre();
- double [] probCalc = net1.getNodeValue(nombreConcepto);
+ double[] probCalc = net1.getNodeValue(nombreConcepto);
System.out.println("proba " + probCalc.toString());
net1.setNodeDefinition(nombreConcepto, probCalc);
}
-
+
net1.clearEvidence(nombreEjercicio);
net1.updateBeliefs();
net1.writeFile("redes/" + nombreRed);
}
-
+
@WebMethod
public String getText() {
return "hola mundo";
}
private Ejercicio seleccionAleatoria(Tarea tarea) {
- //Tema tema = tarea.getTema();
-
- //List<Concepto> = tema.getIdConcepto()
- List<Ejercicio> ejercicios = em.createQuery("SELECT e FROM Ejercicio e").getResultList();
+ // Tema tema = tarea.getTema();
+
+ // List<Concepto> = tema.getIdConcepto()
+ List<Ejercicio> ejercicios = em
+ .createQuery("SELECT e FROM Ejercicio e").getResultList();
System.out.println(ejercicios.size());
Random rnd = new Random();
int siguienteID = rnd.nextInt(ejercicios.size());
@@ -136,101 +153,144 @@ public class EjercitarWSBean implements EjercitarWSRemote {
System.out.println(ejercicio.getEnunciado());
return ejercicio;
}
-
+
private Ejercicio seleccionUtilidadMax(Tarea tarea, Alumno alumno) {
- //Tema tema = tarea.getTema();
- //List<Concepto> conceptoList = new ArrayList();
+ // Tema tema = tarea.getTema();
+ // List<Concepto> conceptoList = new ArrayList();
List<Concepto> conceptoList = tarea.getConceptoList();
-
-
+
// inicializacion
double utilidadMax = 0;
Ejercicio ejercicio = null;
-
+
for (Concepto concepto : conceptoList) {
-
- //red
+
+ // red
Network net1 = new Network();
String nombreRed = "red_alumno_" + alumno.getIdAlumno() + ".xdsl";
System.out.println("redes/" + nombreRed);
net1.readFile("redes/" + nombreRed);
net1.updateBeliefs();
- //Network net2 = new Network();
- //net2.readFile("redes/" + nombreRed);
- //red
-
+ // Network net2 = new Network();
+ // net2.readFile("redes/" + nombreRed);
+ // red
+
String nombreConcepto = "C" + concepto.getIdConcepto();
- //prueba de evidencias 1
-
- double [] values = net1.getNodeValue(nombreConcepto);
+ // prueba de evidencias 1
+
+ double[] values = net1.getNodeValue(nombreConcepto);
System.out.println("values");
System.out.println(values.toString());
double pC1 = values[0]; // P(C=1)
double pC0 = values[1]; // P(C=0)
-
+
List<Ejercicio> ejercicios = concepto.getEjercicioList();
- for(Ejercicio ejercicioConcepto : ejercicios){
- String nombreEjercicio = "E" + ejercicioConcepto.getIdEjercicio();
+ for (Ejercicio ejercicioConcepto : ejercicios) {
+ String nombreEjercicio = "E"
+ + ejercicioConcepto.getIdEjercicio();
net1.setEvidence(nombreConcepto, "Conoce");
net1.updateBeliefs();
values = net1.getNodeValue(nombreEjercicio);
double pE1C1 = values[0]; // P(E=1/C=1)
-
- double utilidadParcial1 = pE1C1 * pC1;
-
+
+ double utilidadParcial1 = pE1C1 * pC1;
+
net1.clearEvidence(nombreConcepto);
net1.updateBeliefs();
net1.setEvidence(nombreConcepto, "No_conoce");
net1.updateBeliefs();
double pE0C0 = values[1]; // P(E=0/C=0)
-
+
double utilidadParcial2 = pE0C0 * pC0;
-
+
double utilidadMaxParcial = utilidadParcial1 + utilidadParcial2;
-
- if(utilidadMaxParcial > utilidadMax) {
+
+ if (utilidadMaxParcial > utilidadMax) {
utilidadMax = utilidadMaxParcial;
ejercicio = ejercicioConcepto;
}
}
-
+
}
return ejercicio;
}
-
+
@WebMethod
- public void registrarSesion(int idAlumno, int idTarea, Boolean ayudaPadres, Boolean desdeHogar, String estadoAnimo) {
-
-
+ public void registrarSesion(int idAlumno, int idTarea, Boolean ayudaPadres,
+ Boolean desdeHogar, String estadoAnimo) {
+
Sesion sesion = new Sesion();
-
+
sesion.setEntrada(new Date(System.currentTimeMillis()));
sesion.setAyudaPadres(ayudaPadres);
sesion.setDesdeHogar(desdeHogar);
sesion.setEstadoAnimo(estadoAnimo);
- System.out.println("#########Estado" + estadoAnimo + estadoAnimo.length());
- Alumno alumno = em.find(Alumno.class,idAlumno);
+ System.out.println("#########Estado" + estadoAnimo
+ + estadoAnimo.length());
+ Alumno alumno = em.find(Alumno.class, idAlumno);
System.out.println("#########" + alumno.getApellido());
-
+
Tarea tarea = em.find(Tarea.class, idTarea);
-
+
System.out.println("#########" + tarea.getDescripcion());
-
+
sesion.setAlumno(alumno);
sesion.setTarea(tarea);
-
+
em.persist(sesion);
-
- }
+ }
@WebMethod
public Alumno obtenerIdAlumno(String serial) {
// TODO Auto-generated method stub
- //Alumno alumno = (Alumno) em.createQuery("Select a from Alumno a where a.serial = :serial").getParameter(serial, serial).;
- Alumno alumno = (Alumno) em.createQuery("Select a from Alumno a where a.serial = :serial")
+ // Alumno alumno = (Alumno)
+ // em.createQuery("Select a from Alumno a where a.serial = :serial").getParameter(serial,
+ // serial).;
+ Alumno alumno = (Alumno) em
+ .createQuery("Select a from Alumno a where a.serial = :serial")
.setParameter("serial", serial).getSingleResult();
return alumno;
}
+ @WebMethod
+ public Boolean getCriterioParada(Integer idAlumno, Integer idTarea) {
+
+ Tarea tarea = em.find(Tarea.class, idTarea);
+ Alumno alumno = em.find(Alumno.class, idAlumno);
+
+ System.out.println("tareaa "+tarea.getDescripcion());
+ System.out.println("alumno " + alumno.getIdAlumno() + alumno.getNombre());
+
+ Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.salida desc");
+ query.setParameter("alumno", alumno.getIdAlumno());
+
+ query.setParameter("tarea", tarea.getIdTarea());
+ query.setMaxResults(1);
+
+ Sesion sesion = (Sesion) query.getSingleResult();
+
+ System.out.println("sesion cantidad EjercicioResuelto " + sesion.getcantidadEjerciciosResueltos());
+
+ Integer cantEjercicioResuelto = sesion.getcantidadEjerciciosResueltos() + 1;
+ Integer cantMaxEjercicio = sesion.getTarea()
+ .getCantidadEjercicioParada();
+
+ System.out.println("sesion cantidad cantMaxEjercicio " + cantMaxEjercicio);
+ sesion.setCantidadEjerciciosResuetos(cantEjercicioResuelto);
+ try{
+ em.persist(sesion);
+ }catch(Exception e){
+ System.out.println(e.getLocalizedMessage());
+ }
+ if (cantEjercicioResuelto.equals(cantMaxEjercicio)) {
+ System.out.println("true");
+ return true;
+ } else{
+ System.out.println("false");
+ return false;
+ }
+
+ }
+
}
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java b/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
index 0761f04..fa4faea 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
@@ -26,4 +26,6 @@ public interface EjercitarWSRemote {
public Alumno obtenerIdAlumno(String serial);
+ public Boolean getCriterioParada(Integer idAlumno, Integer idTarea);
+
} \ No newline at end of file