//Constructor public Cuestionario(Candidato cand, string claveCuest = null, PuestoEvaluado pEv = null, int maxAccess = 0, int accesos = 0, Bloque bloq = null) { clave = claveCuest; nroAccesos = accesos; maxAccesos = maxAccess; candidatoAsociado = cand; puestoEvaluado = pEv; ultimoBloque = bloq; }
//mira nuevamente esta funcionalidad public List<PreguntaEvaluada> listarPreguntas(PuestoEvaluado puesto) { List<PreguntaEvaluada> listaRetorno = new List<PreguntaEvaluada>(); List<String> factoresNoEvaluados = new List<string>(); List<Caracteristica> listCaracteristicas = puesto.getCaracteristicas(); for (int i = 0; i < listCaracteristicas.Count; i++) { CompetenciaEvaluada compEv = (CompetenciaEvaluada)listCaracteristicas[i].dato1; List<FactorEvaluado> factores = compEv.ListaFactores; for (int j = 0; j < factores.Count; j++) { int apto = factores[j].ListaPreguntasEv.Count;//retorna la cantidad de preguntas en el factor switch (apto >= 5) { case true: List<PreguntaEvaluada> listPreguntas = ordenarLista(factores[j].ListaPreguntasEv); for (int h = 0; h < 5; h++) { listaRetorno.Add(listPreguntas[h]); } break; default: factoresNoEvaluados.Add(factores[j].Nombre); break; } } } if(factoresNoEvaluados.Count != 0) { string mensajeBox = "Los siguiente factores no fueron evaludos por no cumplir con el minimo de preguntas para la evaluación:\n"; for (int i = 0; i < factoresNoEvaluados.Count; i++) { mensajeBox += factoresNoEvaluados[i] + "\t\n"; } MessageBox.Show(mensajeBox); } return listaRetorno; }
/* * La mision que justifica la existencia de los gestores es hacer de "interfaz" entre las ENTIDADES y el resto del sistema * Por esto el gestor debe tener la responsabilidad de instanciar la/s que le corresponde gestionar */ public Cuestionario instanciarCuestionario(Candidato canditoAsociado, string claveCuestionario, PuestoEvaluado puestoEvAsociado, int accesos = 0) { int maxAccesos = admBD.darAccesosMaximos(); Cuestionario nuevoCuestionario = new Cuestionario(canditoAsociado, claveCuestionario, puestoEvAsociado, maxAccesos, accesos, null); return nuevoCuestionario; }
/* * - 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; }
/* * La mision que justifica la existencia de los gestores es hacer de "intermediario" entre las ENTIDADES y el resto del sistema * Por esto el gestor debe tener la responsabilidad de instanciar la/s que le corresponde gestionar */ public PuestoEvaluado instanciarPuestoEvaluado(string codigo, string nombre, string empresa, string descripcion = null, List<Caracteristica> caracteristicas = null) { AdministradorBD admBD = new AdministradorBD(); PuestoEvaluado nuevoPuestoEv = new PuestoEvaluado(codigo, nombre, empresa, DateTime.Now, descripcion, caracteristicas); return nuevoPuestoEv; }
public PreguntaEvaluada retornarPreguntaDeLaRelacion(PuestoEvaluado puestoAsociado, string codigo) { int i = 0; PreguntaEvaluada preguntaEncontrada = null; while (i < puestoAsociado.Caracteristicas.Count) { int j = 0; CompetenciaEvaluada competenciaAsociada = (CompetenciaEvaluada)puestoAsociado.Caracteristicas[i].dato1; while (j < competenciaAsociada.ListaFactores.Count) { int w = 0; List<PreguntaEvaluada> listaPreguntas = competenciaAsociada.ListaFactores[j].ListaPreguntasEv; while (w < listaPreguntas.Count) { if ((listaPreguntas[w].Codigo == codigo) == true) return preguntaEncontrada = listaPreguntas[w]; w++; } j++; } i++; } return preguntaEncontrada; }
public DateTime obtenerFechaEvaluacion(PuestoEvaluado puestoEv) { return puestoEv.Fecha_Comienzo; }