コード例 #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);
        }