//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; }
//valida que el candidato poseea un cuestionario en algun estado valido public bool validarAcceso(Cuestionario cuest, string claveUs) { bool retorno = false; //por defecto se lo dejo como falso.. MIRAR DESPUES string estado = cuest.obtenerEstado(); switch(estado) { case "ACTIVO": switch (Equals(cuest.Clave, claveUs))//se fija si la clave guardada en el cuestionario sea = a la pasada como parametro { case true: retorno = true; break; case false: retorno = false; break; } break; case "EN PROCESO": switch (Equals(cuest.Clave, claveUs))//idem anterior ... FIJARSE SI NO HAY UNA MEJOR FORMA DE HACER ESTOS SWITCH EN GRAL { case true: retorno = true; break; case false: retorno = false; break; } break; default: MessageBox.Show("El candidato no posee un cuestionario 'En proceso' o 'Activo'", "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Information); retorno = false; break; } return retorno; }