//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;
 }
Example #2
0
 //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;
 }