/// <summary>
        /// ELimina un curso
        /// </summary>
        /// <param name="pcodigo">Codigo del curso que se buscara y eliminara</param>
        public static void eliminarCurso(String pcodigo)
        {
            //Por djhvscf
               dynamic _Usp = Properties.Resources.usp_EliminarCurso ;
               Persistentes.CursoPersistente cursoPers = new Persistentes.CursoPersistente();
               cursoPers.eliminarCurso(pcodigo, _Usp);
               //Capa de datos
               //GestorRegistrar.registrarBitacora(" ha eliminado el curso con el código " + pcodigo);

               //Registrar En Bitacora
               Estructuras.StructUsuario objActual;
               if (Clases.UsuarioTemporal._UsuarioActual != null)
               {
               objActual = Clases.UsuarioTemporal._UsuarioActual;
               GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha eliminado el curso con el código: " + pcodigo, objActual);
               }
        }
        /// <summary>
        /// Cambia el estado de un curso
        /// </summary>
        /// <param name="pcodigoSelec">Código del curso seleccionado</param>
        public static void cambiarEstadoCurso(String pcriterio)
        {
            //Por Camilo Agüero
               try
               {
               dynamic _Usp = Properties.Resources.usp_BuscarEstadoCurso;
               Persistentes.CursoPersistente cursoPersistente = new Persistentes.CursoPersistente();
               cursoPersistente.cambiarEstadoCurso(pcriterio, _Usp);
               //Estructuras.StructUsuario objActual;
               //objActual = Clases.UsuarioTemporal._UsuarioActual;
               //GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha modificado el curso con el criterio: " + pcriterio, objActual);

               //Registrar En Bitacora
               Estructuras.StructUsuario objActual;
               if (Clases.UsuarioTemporal._UsuarioActual != null)
               {
                   objActual = Clases.UsuarioTemporal._UsuarioActual;
                   GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha modificado el curso con el criterio: " + pcriterio, objActual);
               }
               }
               catch (Exception ex)
               {
               throw new Exception("Error en la persistencia de Curso yeah!.. " + ex.Message);
               }
        }
        /// <summary>
        /// Modificar Un curso
        /// </summary>
        /// <param name="pcodigo">Codigo de la curso</param>
        /// <param name="pnombre">Nombre del curso</param>
        /// <param name="pestado">Estado del curso</param>
        /// <param name="pcodOriginal">Codigo del curso original</param>
        public static void modificarCurso(String pcodigo, String pnombre, Boolean pestado, String pcodOriginal)
        {
            //Por Chris Esquivel
               Clases.Curso curso = new Clases.Curso(pcodigo, pnombre, pestado);
               Persistentes.CursoPersistente cursoPers = new Persistentes.CursoPersistente();
               cursoPers.modificarCurso(curso, pcodOriginal);
               //Estructuras.StructUsuario objActual;
               //objActual = Clases.UsuarioTemporal._UsuarioActual;
               //GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha modificado el curso con el código: " + pcodOriginal, objActual);

               //Registrar En Bitacora
               Estructuras.StructUsuario objActual;
               if (Clases.UsuarioTemporal._UsuarioActual != null)
               {
               objActual = Clases.UsuarioTemporal._UsuarioActual;
               GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha modificado el curso con el código: " + pcodOriginal, objActual);
               }
        }
        /// <summary>
        /// Lista de los cursos registrados
        /// </summary>
        /// <returns>Lista con todos los cursos registados con nombres de las carreras</returns>
        public static List<Array> listarCursosCarreras()
        {
            //Por djhvscf
              try
              {
              dynamic _Usp = Capa_LogicaNegociosCENFOFORUM.Properties.Resources.usp_ListarCursosConCarrera;

              List<Estructuras.StructCurso> _cursos = new List<Estructuras.StructCurso>();
              Persistentes.CursoPersistente _cursoPersistente = new Persistentes.CursoPersistente();
              List<Array> _arreglo = new List<Array>();

              _cursos = _cursoPersistente.obtenerListaCursosCarrera(_Usp);

              foreach (Estructuras.StructCurso _curso in _cursos)
              {
                  String[] _datos =
                    {
                        _curso.codigo.ToString(),
                        _curso.nombre.ToString(),
                        _curso.estaActivo.ToString(),
                        _curso.carrera.ToString()
                    };

                  _arreglo.Add(_datos);
              }

              return _arreglo;
              }
              catch (Exception ex)
              {
              throw new Exception("Error en la persistencia de Curso.. " + ex.Message);
              }
        }
 /// <summary>
 /// Lista los códigos de los cursos
 /// </summary>
 /// <returns>Lista con todos los códigos de los cursos registados</returns>
 public static List<String> listarCodigosCursos()
 {
     //Por Camilo
     try
     {
         dynamic _Usp = Capa_LogicaNegociosCENFOFORUM.Properties.Resources.usp_ListarCodigosCursos;
         List<String> _codigos = new List<String>();
         Persistentes.CursoPersistente _cursoPersistente = new Persistentes.CursoPersistente();
         _codigos = _cursoPersistente.obtenerCodigoCursos(_Usp);
         return _codigos;
     }
     catch (Exception ex)
     {
         throw new Exception("Error en la persistencia de Curso.. " + ex.Message);
     }
 }
 /// <summary>
 /// Busca el id de un curso por medio de su código
 /// </summary>
 /// <returns>El id del curso</returns>
 public static int buscarIdCurso(String pcodCurso)
 {
     //Por Camilo
     try
     {
         dynamic _Usp = Capa_LogicaNegociosCENFOFORUM.Properties.Resources.usp_buscarIdCurso;
         int idCurso;
         Persistentes.CursoPersistente _cursoPersistente = new Persistentes.CursoPersistente();
         idCurso = _cursoPersistente.obtenerIdCurso(_Usp, pcodCurso);
         return idCurso;
     }
     catch (Exception ex)
     {
         throw new Exception("Error en la persistencia de Curso.. " + ex.Message);
     }
 }
        /// <summary>
        /// Busca un curso
        /// </summary>
        /// <param name="pcriterio">Criterio por el que sebuscara el curso</param>
        /// <returns>Lista con los cursos que tienen igual o parecido un dato con el criterio</returns>
        public static List<Estructuras.StructCurso> buscarCurso(String pcriterio)
        {
            //Por djhvscf
              try
              {

              dynamic _Usp = Capa_LogicaNegociosCENFOFORUM.Properties.Resources.usp_BuscarCurso;
              List<Estructuras.StructCurso> _cursos = new List<Estructuras.StructCurso>();
              Persistentes.CursoPersistente _cursoPersistente = new Persistentes.CursoPersistente();
              List<Array> _arreglo = new List<Array>();

              _cursos = _cursoPersistente.buscarCurso(pcriterio, _Usp);

              return _cursos;
              }
              catch (Exception ex)
              {
              throw new Exception("Error en la persistencia de Curso.. " + ex.Message);
              }
        }
        /// <summary>
        /// Obtiene solo el codigo de los cursos
        /// </summary>
        /// <returns>Lista con los codigos de los cursos</returns>
        public static List<String> obtenerCodigosCursos()
        {
            //Por djhvscf
              try
              {
              dynamic _Usp = Capa_LogicaNegociosCENFOFORUM.Properties.Resources.usp_ObtenerCodigosCursos;

              //declarar una variable tipo lista genérica de la clase ClsUsuario
              List<String> _cursos = new List<String>();
              Persistentes.CursoPersistente _cursoPersistente = new Persistentes.CursoPersistente();

              _cursos = _cursoPersistente.obtenerCodigoCursos(_Usp);

              return _cursos;
              }
              catch (Exception ex)
              {
              throw new Exception("Error en la persistencia de Curso.. " + ex.Message);
              }
        }
        /// <summary>
        /// Ingresar un curso automaticamento
        /// </summary>
        /// <param name="dtContenedorExcel">Lectura del excel</param>
        public static void ingresarCursoAut(DataTable dtContenedorExcel, int pcarrera)
        {
            //djhvscf
            try
            {
                Persistentes.CursoPersistente cursoPers = new Persistentes.CursoPersistente();
                cursoPers.insertarCursoAut(dtContenedorExcel, pcarrera);
                //Estructuras.StructUsuario objActual;
                //objActual = Clases.UsuarioTemporal._UsuarioActual;
                //GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha registrado varios curso con un archivo externo", objActual);

                //Registrar En Bitacora
                Estructuras.StructUsuario objActual;
                if (Clases.UsuarioTemporal._UsuarioActual != null)
                {
                    objActual = Clases.UsuarioTemporal._UsuarioActual;
                    GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha registrado varios curso con un archivo externo", objActual);
                }
            }
            catch (Exception ex)
            {
                throw new System.Exception(ex.Message);
            }
        }
        /// <summary>
        /// Ingresa un curso
        /// </summary>
        /// <param name="pcodigo">Codigo del curso</param>
        /// <param name="pnombre">Nombre del curso</param>
        /// <param name="pestaActivo">Estado del curso, por defecto activo</param>
        public static void ingresarCurso(String pcodigo, String pnombre, Boolean pestaActivo, int pcarrera)
        {
            //Por djhvscf
            Clases.Curso curso = new Clases.Curso(pcodigo, pnombre, pestaActivo);
            Persistentes.CursoPersistente cursoPers = new Persistentes.CursoPersistente();
            cursoPers.insertarCurso(curso, pcarrera);
            //Estructuras.StructUsuario objActual;
            //objActual = Clases.UsuarioTemporal._UsuarioActual;
            //GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha registrado el curso con el código: " + curso.codigo, objActual);

            //Registrar En Bitacora
            Estructuras.StructUsuario objActual;
            if (Clases.UsuarioTemporal._UsuarioActual != null)
            {
                objActual = Clases.UsuarioTemporal._UsuarioActual;
                GestorRegistrar.registrarBitacora("El usuario " + objActual.nombre + " ha registrado el curso con el código: " + curso.codigo, objActual);
            }
        }