コード例 #1
0
        //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;
        }
コード例 #2
0
 //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;
 }