コード例 #1
0
 public int siguienteBloque(TabControl tbc, int bloqueAc, Cuestionario cuest)
 {
     try
     {
         if (verificarRespuestasCompletas(tbc))
         {
             GestorDeRespuesta    clogResp   = new GestorDeRespuesta();
             GestorDeBloque       clogBloque = new GestorDeBloque();
             GestorDeCuestionario clogCuest  = new GestorDeCuestionario();
             GestorDeCandidato    clogCand   = new GestorDeCandidato();
             int    i            = 0;
             Bloque bloqueActual = cuest.Bloque.ToList()[bloqueAc];
             foreach (ItemBloque re in bloqueActual.ItemBloque.ToList())
             {
                 string    str  = ("lsbRespuestas" + (i + 1).ToString());
                 ListBox   lsb  = (ListBox)tbc.TabPages[i].Controls[0].Controls[str];
                 Respuesta resp = clogResp.getRespuestas(lsb.SelectedItem.ToString()).First();
                 cuest.Bloque.ToList()[bloqueAc].ItemBloque.ToList()[i].id_respuesta = resp.id_respuesta;
                 clogBloque.modificarItemBloque(re, resp.id_respuesta);
                 i++;
             }
             return(bloqueAc);
         }
         else
         {
             throw new ExceptionPersonalizada("Debe responder a todas las preguntas");
         }
     }
     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;
            }
        }