public PreguntaEvaluada retornarPreguntaDeLaRelacion(PuestoEvaluado puestoAsociado, string codigo) { int i = 0; PreguntaEvaluada preguntaEncontrada = null; while (i < puestoAsociado.Caracteristicas.Count) { int j = 0; CompetenciaEvaluada competenciaAsociada = (CompetenciaEvaluada)puestoAsociado.Caracteristicas[i].dato1; while (j < competenciaAsociada.ListaFactores.Count) { int w = 0; List <PreguntaEvaluada> listaPreguntas = competenciaAsociada.ListaFactores[j].ListaPreguntasEv; while (w < listaPreguntas.Count) { if ((listaPreguntas[w].Codigo == codigo) == true) { return(preguntaEncontrada = listaPreguntas[w]); } w++; } j++; } i++; } return(preguntaEncontrada); }
/* * La mision que justifica la existencia de los gestores es hacer de "intermediario" entre las ENTIDADES y el resto del sistema * Por esto el gestor debe tener la responsabilidad de instanciar la/s que le corresponde gestionar */ public PuestoEvaluado instanciarPuestoEvaluado(string codigo, string nombre, string empresa, string descripcion = null, List <Caracteristica> caracteristicas = null) { AdministradorBD admBD = new AdministradorBD(); PuestoEvaluado nuevoPuestoEv = new PuestoEvaluado(codigo, nombre, empresa, DateTime.Now, descripcion, caracteristicas); return(nuevoPuestoEv); }
//mira nuevamente esta funcionalidad public List <PreguntaEvaluada> listarPreguntas(PuestoEvaluado puesto) { List <PreguntaEvaluada> listaRetorno = new List <PreguntaEvaluada>(); List <String> factoresNoEvaluados = new List <string>(); List <Caracteristica> listCaracteristicas = puesto.getCaracteristicas(); for (int i = 0; i < listCaracteristicas.Count; i++) { CompetenciaEvaluada compEv = (CompetenciaEvaluada)listCaracteristicas[i].dato1; List <FactorEvaluado> factores = compEv.ListaFactores; for (int j = 0; j < factores.Count; j++) { int apto = factores[j].ListaPreguntasEv.Count;//retorna la cantidad de preguntas en el factor switch (apto >= 5) { case true: List <PreguntaEvaluada> listPreguntas = ordenarLista(factores[j].ListaPreguntasEv); for (int h = 0; h < 5; h++) { listaRetorno.Add(listPreguntas[h]); } break; default: factoresNoEvaluados.Add(factores[j].Nombre); break; } } } if (factoresNoEvaluados.Count != 0) { string mensajeBox = "Los siguiente factores no fueron evaludos por no cumplir con el minimo de preguntas para la evaluación:\n"; for (int i = 0; i < factoresNoEvaluados.Count; i++) { mensajeBox += factoresNoEvaluados[i] + "\t\n"; } MessageBox.Show(mensajeBox); } return(listaRetorno); }
public Bloque inicializarCuestionario(Cuestionario cuestionario) { PuestoEvaluado pEv = cuestionario.PuestoEvaluado; List <PreguntaEvaluada> listaPreguntas = gestorEvaluacion.listarPreguntas(pEv); if (listaPreguntas.Count != 0) { ordenarListaAleatorio(listaPreguntas); int pregXbloque = admBD.preguntasPorBloque(); if (pregXbloque != -1 && pregXbloque != -2) { bool bloques_Creados = this.crearBloque(listaPreguntas, pregXbloque, cuestionario); if (bloques_Creados) { this.cambiarEstado("EN PROCESO", cuestionario); cuestionario.aumentarAcceso(); Bloque bloq_ = cuestionario.UltimoBloque; this.resguardarCuestionario(cuestionario); return(bloq_); } else { return(null); } } else { return(null); } } else { return(null); } }
public DateTime obtenerFechaEvaluacion(PuestoEvaluado puestoEv) { return(puestoEv.Fecha_Comienzo); }
//Toma la decicion de que acción realizar para el cuestionario validado public ArrayList crearCuestionario(Cuestionario nCuestionario) { ArrayList procesoFinalizado = new ArrayList(); int accesos = nCuestionario.NroAccesos; int maxAccesos = nCuestionario.MaxAccesos; string estadoCuestionario = nCuestionario.obtenerEstado(); switch (accesos < maxAccesos) { case true: PuestoEvaluado puestoEv = nCuestionario.PuestoEvaluado; DateTime fechaComienzoEvaluacion = gestorEvaluacion.obtenerFechaEvaluacion(puestoEv); //tiempo del sistema es el tiempo en dias que se prevee para la evaluación int tiempoSist = admBD.darTiempoEvaluacion(); //tiempo actual es el tiempo transcurrido en dias desde el se inicio de la evaluacion int tiempoActual = this.determinarCantidad_DeDiasPasados(fechaComienzoEvaluacion); switch (tiempoActual <= tiempoSist) { case true: //tiempo maximo es el tiempo maximo para realizar el cuestionario desde que se comienza int tiempoMax = admBD.darTiempoActivo(); DateTime fechaCuestionario = nCuestionario.obtenerFechaEstado(); //tiempo activo es el tiempo que transcurrio desde que se comenzo a realizar el cuestionario int tiempoActivo = this.determinarCantidad_DeDiasPasados(fechaCuestionario); switch (tiempoActivo <= tiempoMax) { case true: { if (Equals(estadoCuestionario, "EN PROCESO") == true) { Bloque bloq_retorno = this.levantarCuestionario(nCuestionario); procesoFinalizado.Add(bloq_retorno); } else if (Equals(estadoCuestionario, "ACTIVO") == true) { procesoFinalizado.Add("instrucciones"); //va al objeto interfaz break; } } break; case false: cerrarCuestionario(nCuestionario, estadoCuestionario); procesoFinalizado.Add("Se supero el tiempo para estar Activo establecido para completar el cuestionario"); break; } break; case false: cerrarCuestionario(nCuestionario, estadoCuestionario); procesoFinalizado.Add("Supero el tiempo maximo permitido para completar el cuestionario"); break; } break; case false: cerrarCuestionario(nCuestionario, estadoCuestionario); procesoFinalizado.Add("Supero la cantidad maxima de accesos permitida para completar el cuestionario"); break; } return(procesoFinalizado); }
/* * La mision que justifica la existencia de los gestores es hacer de "interfaz" entre las ENTIDADES y el resto del sistema * Por esto el gestor debe tener la responsabilidad de instanciar la/s que le corresponde gestionar */ public Cuestionario instanciarCuestionario(Candidato canditoAsociado, string claveCuestionario, PuestoEvaluado puestoEvAsociado, int accesos = 0) { int maxAccesos = admBD.darAccesosMaximos(); Cuestionario nuevoCuestionario = new Cuestionario(canditoAsociado, claveCuestionario, puestoEvAsociado, maxAccesos, accesos, null); return(nuevoCuestionario); }