예제 #1
0
        public void finalizar(Evaluacion evaluacion, List <Cuestionario> listaCuest, List <Candidato> listaCand)
        {
            GestorDeEvaluacion clogEv = new GestorDeEvaluacion();

            try
            {
                clogEv.alta(evaluacion, listaCuest, listaCand);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        public Cuestionario empezarCuestionario()
        {
            GestorDeEvaluacion clogEval = new GestorDeEvaluacion();
            GestorDeCandidato  clogCand = new GestorDeCandidato();
            GestorDePregunta   clogPreg = new GestorDePregunta();

            try
            {
                GestorTablaDeParametros clogTablaPar = new GestorTablaDeParametros();
                Cuestionario            cuest        = this.cargarCuestionario();
                if (cuest != null)
                {
                    int tiempoPermitido   = clogTablaPar.obtenerParametroEntero("TiempoTotalCuest");
                    int cantAccesosMaxima = clogTablaPar.obtenerParametroEntero("CantAccesosMaxima");
                    if ((DateTime.Now - cuest.fecha_inicio.Value).TotalSeconds < tiempoPermitido && cuest.cantidad_accesos < cantAccesosMaxima)
                    {
                        evaluacion = clogEval.getEvaluaciones(cuest.id_evaluacion.Value);
                        if (this.obtenerUltimoEstado(cuest) == "Activo")
                        {
                            int tiempoActivoPerm = clogTablaPar.obtenerParametroEntero("TiempoEstActivo");
                            if ((DateTime.Now - cuest.fecha_inicio.Value).TotalSeconds < tiempoActivoPerm)
                            {
                                generarBloquesCuestionario(cuest);
                                this.modificarEstado(cuest, "En Proceso");
                            }
                            else
                            {
                                this.modificarEstado(cuest, "Sin Contestar");
                                throw new ExceptionPersonalizada("Se ha excedido el tiempo para el estado Activo del cuestionario");
                            }
                            cuest = this.obtenerCuestionarioDB(cuest.id_cuestionario);
                        }
                        this.agregarAcceso(cuest);
                        return(cuest);
                    }
                    else
                    {
                        string estadoCuest = this.obtenerUltimoEstado(cuest);
                        if (estadoCuest == "Activo" || estadoCuest == "En Proceso")
                        {
                            this.modificarEstado(cuest, "Incompleto");
                        }
                        string mensaje = "\n";
                        if ((DateTime.Now - cuest.fecha_inicio.Value).TotalSeconds >= tiempoPermitido)
                        {
                            mensaje += "Se ha excedido el tiempo para completar el cuestiopnario.\n";
                        }
                        if (cuest.cantidad_accesos >= cantAccesosMaxima)
                        {
                            mensaje += "Se ha excedido la cantidad de accesos permitidos.\n";
                        }
                        mensaje = mensaje.Remove(mensaje.LastIndexOf('\n'));
                        throw new ExceptionPersonalizada(mensaje);
                    }
                }
                else
                {
                    throw new ExceptionPersonalizada("Error, el usuario no tiene un cuestionario a completar asociado a esa cuenta.\n");
                }
            }
            catch (Exception ex) {
                throw ex;
            }
        }