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; } }
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; } }