public PruebaPorCandidato GetById(int pidCandidato, int pidTecnologia, string pnivelConocimiento)
        {
            PruebaPorCandidato pruebaCandidato = null;
             var sqlQuery = "  select pc.tiempo_caducidad, pc.fecha_inicio, pc.fecha_fin, pc.id_candidato, pc.id_Tecnologia, pc.nivel_conocimiento, pc.estado_prueba,pc.idPrueba,c.nombre+' '+c.apellidos as nombre_candidato,t.nombre_tecnologia, p.nombre_prueba from Pruebas_Por_Candidato pc inner join candidatos c on pc.id_candidato = c.id_candidato inner join tecnologias t on pc.id_tecnologia = t.id_tecnologia  inner join pruebas p on pc.idPrueba = p.id_prueba where pc.esta_oculto = 0 and pc.id_candidato = @idCandidato and pc.id_tecnologia = @idTecnologia and pc.nivel_conocimiento = @nivelConocimiento";
            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("@idCandidato", pidCandidato);
            cmd.Parameters.AddWithValue("@idTecnologia", pidTecnologia);
            cmd.Parameters.AddWithValue("@nivelConocimiento", pnivelConocimiento);

            var ds = DBAccess.ExecuteSQLWithDS(cmd, sqlQuery);

            if (ds.Tables[0].Rows.Count > 0)
            {
                var dr = ds.Tables[0].Rows[0];

                pruebaCandidato = new PruebaPorCandidato

                {
                    Id = Convert.ToInt32(dr["id_candidato"]),
                    IdTecnologia = Convert.ToInt32(dr["id_tecnologia"]),
                    NivelConocimiento = dr["nivel_conocimiento"].ToString(),
                    EstadoPrueba = dr["estado_prueba"].ToString(),
                    TiempoCaducidad = dr["tiempo_caducidad"].ToString(),
                    IdPrueba = Convert.ToInt32(dr["idPrueba"]),
                    NombreCandidato = dr["nombre_candidato"].ToString(),
                    NombreTecnologia  =  dr["nombre_tecnologia"].ToString()

                };
            }

            return pruebaCandidato;
        }
        public void ModificarCalificacionPruebaPorCandidato(PruebaPorCandidato pruebaCandidato)
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Parameters.Add(new SqlParameter("@id_candidato", pruebaCandidato.Id));
                cmd.Parameters.Add(new SqlParameter("@id_tecnologia", pruebaCandidato.IdTecnologia));
                cmd.Parameters.Add(new SqlParameter("@nivel_conocimiento", pruebaCandidato.NivelConocimiento));
                cmd.Parameters.Add(new SqlParameter("@calificacion_prueba", pruebaCandidato.Calificacion));
                cmd.Parameters.Add(new SqlParameter("@id_prueba", pruebaCandidato.IdPrueba));

                DBAccess.ExecuteSPNonQuery(cmd, "USP_PruebaPorCandidatoCalificacion_Update");
            }
            catch (Exception ex)
            {
                throw new DataAccessException("Ha ocurrido un error al calificar la prueba", ex);
            }
        }
예제 #3
0
 public int sumarPuntos(PruebaPorCandidato pruebXCandidato)
 {
     return gestorPrueba.sumarPuntos(pruebXCandidato);
 }
예제 #4
0
        /*************************PruebasPorCandidato***/
        private void registrarPruebaPorCandidato(int pidCandidato, int pidTecnologia, string pnivelConocimiento, int pcalificacion, bool pesPruebaDesarrollo, DateTime pfechaInicio, DateTime pfechaFin,
          DateTime ptiempoCaducidad, string pestadoPrueba, int pidUsuarioReclutador, int pidUsuarioProgramador, string plinkAcceso)
        {
            PruebaPorCandidato pruebaPorCandidato = null;
            pruebaPorCandidato = new PruebaPorCandidato { };

            UoW.PruebaPorCandidatoRepository.Insert(pruebaPorCandidato);
        }
예제 #5
0
 public int sumarPuntos(PruebaPorCandidato pruebXCandidato)
 {
     int puntaje = 0;
     List<PreguntasPorPrueba> pregs = UoW.PreguntaPorPruebaRepository.GetById(pruebXCandidato.IdPrueba);
     foreach (PreguntasPorPrueba p in pregs)
     {
         puntaje+=UoW.PruebaRepository.GetRespuestasPuntaje(p.IdPregunta, pruebXCandidato.IdPrueba);
     }
     pruebXCandidato.Calificacion = puntaje;
     UoW.PruebaPorCandidatoRepository.ModificarCalificacionPruebaPorCandidato(pruebXCandidato);
     return puntaje;
 }
예제 #6
0
        public void calificarPrueba(List<List<string>> prespuestas, PruebaPorCandidato ppruebaXCandidato)
        {
            int calific = 0;
            for (int i = 0; i<prespuestas.Count; i++)
            {
                Pregunta preg = consultarPreguntaXID(Convert.ToInt32(prespuestas[i][0]));
                List<Respuesta> correctas = UoW.RespuestaRepository.GetByIdSeleccionadas(preg.Id);
                switch (preg.TipoRespuesta)
                {
                    case "Respuesta unica":
                        if (correctas[0].Id == Convert.ToInt32(prespuestas[i][1]))
                        {
                            calific = preg.Puntaje;
                        }else
                        {
                            calific = 0;
                        }
                        ppruebaXCandidato.Texto = "NO";
                        break;
                    case "Respuesta multiple":
                        int u = 0;
                        for (int x = 0; x < correctas.Count; x++)
                        {
                            for (int z = 0; z < prespuestas.Count; z++)
                            {
                                int y;
                                if (int.TryParse(prespuestas[z][1], out y))
                                {
                                    if (correctas[x].Id == Convert.ToInt32(prespuestas[z][1]))
                                    {
                                        calific = calific + preg.Puntaje;
                                        u++;
                                    }
                                    else
                                    {
                                        calific = calific + 0;
                                    }
                                }
                            }

                        }
                        ppruebaXCandidato.Texto = "NO";
                        calific = (calific / correctas.Count)*u;
                        break;
                    case "Falso/Verdadero":
                        if (correctas[0].Id == Convert.ToInt32(prespuestas[i][1]))
                        {
                            calific = preg.Puntaje;
                        }
                        else
                        {
                            calific = 0;
                        }
                        ppruebaXCandidato.Texto = "NO";
                        break;
                    case "Desarrollo":
                        calific = -1;
                        ppruebaXCandidato.Texto = prespuestas[i][1];
                        break;
                }

                UoW.PruebaRepository.InsertPreguntaSeleccionada(ppruebaXCandidato, prespuestas[i], calific);

            }
            ppruebaXCandidato.EstadoPrueba = "Terminada";
            UoW.PruebaPorCandidatoRepository.ModificarEstadoPruebaPorCandidato(ppruebaXCandidato);
        }
예제 #7
0
        /*************************PruebasPorCandidato***/
        public void registrarPruebaPorCandidato(int pidCandidato, int pidTecnologia, string pnivelConocimiento,  DateTime pfechaInicio, DateTime pfechaFin,
         string ptiempoCaducidad, string pestadoPrueba, int pidUsuarioProgramador, string pcontraAcceso, int pidPrueba)
        {
            PruebaPorCandidato pruebaPorCandidato = null;
            pruebaPorCandidato = new PruebaPorCandidato {
                Id = pidCandidato ,
                IdTecnologia = pidTecnologia ,
                NivelConocimiento = pnivelConocimiento ,
                FechaInicio = pfechaInicio ,
                FechaFin = pfechaFin ,
                TiempoCaducidad = ptiempoCaducidad ,
                EstadoPrueba = pestadoPrueba ,
                IdUsuarioProgramador = pidUsuarioProgramador ,
                ContrasennaAcceso = pcontraAcceso ,
                IdPrueba = pidPrueba

            };
            if (pruebaPorCandidato.IsValid)
            {
                UoW.PruebaPorCandidatoRepository.ModificarPruebaPorCandidato(pruebaPorCandidato);
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                foreach (RuleViolation rv in pruebaPorCandidato.GetRuleViolations())
                {
                    sb.AppendLine(rv.ErrorMessage);
                }
                throw new BusinessLogicException(sb.ToString());
            }
        }
예제 #8
0
 public void modificarEstadoPrueba(PruebaPorCandidato pruebXCandidato)
 {
     pruebXCandidato.EstadoPrueba = "Cancelada";
     UoW.PruebaPorCandidatoRepository.ModificarEstadoPruebaPorCandidato(pruebXCandidato);
 }
 private void eliminarPruebaPorCandidato(PruebaPorCandidato ptxe)
 {
     try
     {
         SqlCommand cmd = new SqlCommand();
          DataSet ds = DBAccess.ExecuteSPWithDS(cmd, "USP_TecnologiaPorEmpleado_Delete");
     }
     catch (Exception ex)
     {
         throw new DataAccessException("Ha ocurrido un error al procesar la eliminación de la tecnología por empleado.", ex);
     }
 }
        public void ModificarPruebaPorCandidato(PruebaPorCandidato pruebaCandidato)
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Parameters.Add(new SqlParameter("@id_candidato", pruebaCandidato.Id));
                cmd.Parameters.Add(new SqlParameter("@id_tecnologia", pruebaCandidato.IdTecnologia ));
                cmd.Parameters.Add(new SqlParameter("@nivel_conocimiento", pruebaCandidato.NivelConocimiento ));
                cmd.Parameters.Add(new SqlParameter("@fechaInicio", pruebaCandidato.FechaInicio ));
                cmd.Parameters.Add(new SqlParameter("@FechaFinal", pruebaCandidato.FechaFin ));
                cmd.Parameters.Add(new SqlParameter("@tiempo_caducidad", pruebaCandidato.TiempoCaducidad));
                cmd.Parameters.Add(new SqlParameter("@estado_prueba", pruebaCandidato.EstadoPrueba));
                cmd.Parameters.Add(new SqlParameter("@id_usuario_programador", pruebaCandidato.IdUsuarioProgramador));
                cmd.Parameters.Add(new SqlParameter("@contrasennaAcceso", pruebaCandidato.ContrasennaAcceso));
                cmd.Parameters.Add(new SqlParameter("@id_prueba", pruebaCandidato.IdPrueba));

                DBAccess.ExecuteSPNonQuery(cmd, "USP_PruebaPorCandidato_Update");
            }
            catch (Exception ex)
            {
                throw new DataAccessException("Ha ocurrido un error al programar una prueba por candidato", ex);
            }
        }
 public void Insert(PruebaPorCandidato entity)
 {
     _insertItems.Add(entity);
 }
 public void Delete(PruebaPorCandidato entity)
 {
     _deleteItems.Add(entity);
 }
 private void registrarPruebaPorCandidato(PruebaPorCandidato ptxe)
 {
     try
     {
         SqlCommand cmd = new SqlCommand();
         DBAccess.ExecuteSPNonQuery(cmd, "USP_TecnologiaPorEmpleado_Insert");
     }
     catch (Exception ex)
     {
         throw new DataAccessException("Ha ocurrido un error al insertar de la tecnología por empleado.", ex);
     }
 }
예제 #14
0
 public void calificarPrueba(List<List<string>> prespuestas, PruebaPorCandidato ppruebaXCandidato)
 {
     gestorPrueba.calificarPrueba(prespuestas, ppruebaXCandidato);
 }
예제 #15
0
        public void InsertPreguntaSeleccionada(PruebaPorCandidato pruebaXCandidato, List<string> pregResp, int calific)
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Parameters.Add(new SqlParameter("@idCandidato", pruebaXCandidato.Id));
                cmd.Parameters.Add(new SqlParameter("@idTecnologia", pruebaXCandidato.IdTecnologia));
                cmd.Parameters.Add(new SqlParameter("@nivelConocimiento", pruebaXCandidato.NivelConocimiento));
                cmd.Parameters.Add(new SqlParameter("@idPregunta", pregResp[0]));
                cmd.Parameters.Add(new SqlParameter("@idRespuesta", pregResp[0]));
                cmd.Parameters.Add(new SqlParameter("@puntaje", calific));
                cmd.Parameters.Add(new SqlParameter("@prueba", pruebaXCandidato.IdPrueba));
                cmd.Parameters.Add(new SqlParameter("@texto", pruebaXCandidato.Texto));

                DBAccess.ExecuteSPNonQuery(cmd, "USP_Calificar_Insert");

            }
            catch (SqlException ex)
            {
                if (ex.Number == 2601) // Cannot insert duplicate key row in object error
                {
                    throw new DataAccessException("Hubo un error al calificar la prueba.", ex);
                }
                else
                {
                    //logear la excepcion a la bd con un Exceptionv
                    throw new DataAccessException("Ha ocurrido un error al registrar la Prueba", ex);
                }

            }
            catch (Exception ex)
            {
                //logear la excepcion a la bd con un Exception
                throw new DataAccessException("Ha ocurrido un error al registrar la Prueba", ex);
            }
        }
예제 #16
0
        public static PruebaPorCandidato ValidarPruebaXCandidato(String pcorreo, string ppass)
        {
            PruebaPorCandidato pC = null;
             var sqlQuery = "SELECT  pc.id_candidato , pc.id_tecnologia , pc.nivel_conocimiento , pc.calificacion  , pc.fecha_inicio  , pc.fecha_fin , pc.tiempo_caducidad  ,pc.estado_prueba  , pc.id_usuario_programador  , pc.contrasennaAcceso   , pc.idPrueba "+
                        "FROM pruebas_por_candidato pc INNER JOIN candidatos c on pc.id_candidato = c.id_candidato "+
                        "WHERE pc.contrasennaAcceso = @pass and c.correo_electronico = @correo";
             SqlCommand cmd = new SqlCommand();
             cmd.Parameters.AddWithValue("@pass", ppass);
             cmd.Parameters.AddWithValue("@correo", pcorreo);

             var ds = DBAccess.ExecuteSQLWithDS(cmd, sqlQuery);
             if (ds.Tables[0].Rows.Count > 0)
             {
             var dr = ds.Tables[0].Rows[0];
             pC = new PruebaPorCandidato
             {
                 Id = Convert.ToInt32(dr["id_candidato"]),
                 IdTecnologia = Convert.ToInt32(dr["id_tecnologia"]),
                 NivelConocimiento = dr["nivel_conocimiento"].ToString(),
                 Calificacion = Convert.ToInt32(dr["calificacion"]),
                 FechaInicio = Convert.ToDateTime(dr["fecha_inicio"]),
                 FechaFin = Convert.ToDateTime(dr["fecha_fin"]),
                 TiempoCaducidad = dr["tiempo_caducidad"].ToString(),
                 EstadoPrueba = dr["estado_prueba"].ToString(),
                 IdUsuarioProgramador = Convert.ToInt32(dr["id_usuario_programador"]),
                 ContrasennaAcceso = dr["contrasennaAcceso"].ToString(),
                 IdPrueba = Convert.ToInt32(dr["idPrueba"])
             };
             }

             return pC;
        }
 public void Update(PruebaPorCandidato entity)
 {
     _updateItems.Add(entity);
 }