public void addRespueta(PreguntaEvaluada pregContestada, OpcionesEvaluadas opcionElegida) { Caracteristica elemento = new Caracteristica(); elemento.dato1 = pregContestada; elemento.dato2 = opcionElegida; preguntasMasOpciones.Add(elemento); }
/* * - RecuperarCaracteristicasPuesto tiene la misión de recuperar todas las competencias que estan activas (no eliminadas) * y ponederaciones asociades a un puesto puntual de la base de datos */ public List<Caracteristica> recuperarCaracteristicasPuestoEv(PuestoEvaluado puestoEvAsociado, Cuestionario cuest_Asociado) { bool conexionExitosa; //Lista que se retornara con los datos finales de la busqueda List<Caracteristica> listaCaracteristicas = new List<Caracteristica>(); //Lista de caracteristicas auxiliar para realizar la busqueda (almacena los ID de las competencias y ponderaciones) List<Caracteristica> listaRetornoBD = new List<Caracteristica>(); Caracteristica elementoLista = new Caracteristica(); //La consulta selecciona las competencias asociadas al puesto pasado como parametro con su correspondiente ponderacion string consultaSql = "SELECT `Competencia Evaluada_idCompetencia Evaluada`, `ponderacion` " + "FROM `puesto evaluado_competencia evaluada` ponderaciones " + "JOIN `puesto evaluado` p on (p.`codigo` = '" + puestoEvAsociado.Codigo + "' AND p.`idPuesto Evaluado` = ponderaciones.`Puesto Evaluado_idPuesto Evaluado`) " + "JOIN cuestionario c ON (c.clave = '" + cuest_Asociado.Clave + "' AND c.`Puesto Evaluado_idPuesto Evaluado` = p.`idPuesto Evaluado`)"; conexionExitosa = iniciarConexion(); if (!conexionExitosa) { elementoLista.dato1 = "No se realizo la conexion con la base de datos";//Se informa el error listaCaracteristicas.Add(elementoLista); terminarConexion(); return listaCaracteristicas; } //Creamos un adaptador llamado "comando" para realizar la consultaSql que definimos mas arriba MySql.Data.MySqlClient.MySqlCommand comando; comando = ObjConexion.CreateCommand(); //En el adaptador comando hacemos un asignacion en su atributo CommandText de la consultaSql comando.CommandText = consultaSql; //Se hace la ejecucion del comando con el metodo ExecuterReader //y se lo asigna a una variable reader que contendra los resultados de la busqueda en la base de datos MySqlDataReader reader = comando.ExecuteReader(); if (!reader.HasRows) { //si el reader esta vacio, es qe no encontro a ese candidato elementoLista.dato1 = "El puesto no posee competencias para ser evaluado"; listaCaracteristicas.Add(elementoLista); terminarConexion(); return listaCaracteristicas; } while (reader.Read()) { //Se recuperan los ID's de las competencias y los números correspondientes a las ponderaciones int idCompetenciaEv = Int32.Parse(reader["Competencia Evaluada_idCompetencia Evaluada"].ToString()); int ponderacion = Int32.Parse(reader["ponderacion"].ToString()); //Los datos obtenidos se almacena en un elemento de la lista elementoLista.dato1 = idCompetenciaEv; elementoLista.dato2 = ponderacion; listaRetornoBD.Add(elementoLista);//Agregamos el elemento a la lista } //Termanamos la conexion con la base de datos para evitar futuros conflictos con otras consultas terminarConexion(); for (int i = 0; i < listaRetornoBD.Count; i++) { //Realizamos la busqueda de las competencias evaluadas por su ID (QUE ES UNICO) List<CompetenciaEvaluada> competenciaAs = recuperarCompetenciasEvaluadas((int)listaRetornoBD[i].dato1); if (competenciaAs[0] != null) { //Si hubo algun retorno, instanciamos un objeto del tipo ponderacion Ponderacion pondeAs = new Ponderacion((int)listaRetornoBD[i].dato2); //Agregamos la competencia y la poneración a un elemento de la lista elementoLista.dato1 = competenciaAs[0]; elementoLista.dato2 = pondeAs; listaCaracteristicas.Add(elementoLista);//Agregamos el elemento a la lista de caracteristicas del puesto evaluado } } return listaCaracteristicas; }
/* * ***************************************************************** * Se reconstruyen o se trae a memoria el arbol de clases asociadas * que corresponden a un puesto puntual ****************************************************************** * - RecuperarCaracteristicasPuesto tiene la misión de recuperar todas las competencias que estan activas (no eliminadas) * y ponederaciones asociades a un puesto puntual de la base de datos */ public List<Caracteristica> reconstruir_CaracteristicasPuesto(Puesto puestoAsociado) { bool conexionExitosa; bool competenciaEsEvaluable; //Lista que se retornara con los datos finales de la busqueda List<Caracteristica> listaCaracteristicas = new List<Caracteristica>(); //Lista de caracteristicas auxiliar para realizar la busqueda (almacena los ID de las competencias y ponderaciones) List<Caracteristica> listaRetornoBD = new List<Caracteristica>(); string errorCompetenciaNoEvaluable = ""; Caracteristica elementoLista = new Caracteristica(); //La consulta selecciona las competencias asociadas al puesto pasado como parametro con su correspondiente ponderacion string consultaSql = "SELECT `Competencia_codigo`, `ponderacion` " + "FROM `puesto_competencia` ponderaciones " + "JOIN `puesto` p on (p.`codigo` = '" + puestoAsociado.Codigo + "') " + "WHERE p.codigo = ponderaciones.`Puesto_codigo`;"; conexionExitosa = iniciarConexion(); if (!conexionExitosa) { elementoLista.dato1 = "No se realizo la conexion con la base de datos";//Se informa el error listaCaracteristicas.Add(elementoLista); terminarConexion(); return listaCaracteristicas; } //Creamos un adaptador llamado "comando" para realizar la consultaSql que definimos mas arriba MySql.Data.MySqlClient.MySqlCommand comando; comando = ObjConexion.CreateCommand(); //En el adaptador comando hacemos un asignacion en su atributo CommandText de la consultaSql comando.CommandText = consultaSql; //Se hace la ejecucion del comando con el metodo ExecuterReader //y se lo asigna a una variable reader que contendra los resultados de la busqueda en la base de datos MySqlDataReader reader = comando.ExecuteReader(); if (!reader.HasRows) { //si el reader esta vacio, es qe no encontro a ese candidato elementoLista.dato1 = "El puesto no posee competencias para ser evaluado"; listaCaracteristicas.Add(elementoLista); terminarConexion(); return listaCaracteristicas; } while (reader.Read()) { //Se recuperan los ID's de las competencias y los números correspondientes a las ponderaciones string idCompetencia = reader["Competencia_codigo"].ToString(); int ponderacion = Int32.Parse(reader["ponderacion"].ToString()); //Los datos obtenidos se almacena en un elemento de la lista elementoLista.dato1 = idCompetencia; elementoLista.dato2 = ponderacion; listaRetornoBD.Add(elementoLista);//Agregamos el elemento a la lista } //Termanamos la conexion con la base de datos para evitar futuros conflictos con otras consultas terminarConexion(); for (int i = 0; i < listaRetornoBD.Count; i++) { competenciaEsEvaluable = false; //Realizamos la busqueda de las competencias evaluadas por su ID (QUE ES UNICO) Competencia competenciaAs = recuperarCompetencias((string)listaRetornoBD[i].dato1); if (competenciaAs != null) { if (competenciaAs.ListaFactores != null) { for (int j = 0; j < competenciaAs.ListaFactores.Count; j++) { if (competenciaAs.ListaFactores[j].Codigo == "INSUFICIENTES PREG") { competenciaAs.ListaFactores.Remove(competenciaAs.ListaFactores[j]); j--; } else competenciaEsEvaluable = true; } if (!competenciaEsEvaluable) errorCompetenciaNoEvaluable += "\n" + competenciaAs.Nombre; else { //Si hubo algun retorno, instanciamos un objeto del tipo ponderacion Ponderacion pondeAs = new Ponderacion((int)listaRetornoBD[i].dato2); //Agregamos la competencia y la poneración a un elemento de la lista elementoLista.dato1 = competenciaAs; elementoLista.dato2 = pondeAs; listaCaracteristicas.Add(elementoLista);//Agregamos el elemento a la lista de caracteristicas del puesto evaluado } } else errorCompetenciaNoEvaluable += "\n" + competenciaAs.Nombre; } } if (!(errorCompetenciaNoEvaluable == "")) { MessageBox.Show("La(s) Competencia(s) " + errorCompetenciaNoEvaluable + "\nno pueden ser evaluada(s)", "INFORMACION", MessageBoxButtons.OK, MessageBoxIcon.Information); return null; } else return listaCaracteristicas; }