/**
  * Crea un nuevo estudiante en la base de datos.
  * Si el estudiante se creo exitosamente o
  * ya exitia en la base de datos: retorna verdadero.
  * Si no retorna falso.
  **/
 public bool CrearEstudiante(Estudiante pEstudiante, int pPlanEstudios)
 {
     IMetodosEstudiante _metEstudiante = new MetodosEstudiante();
     return _metEstudiante.GuardarDatosEstudiantes(pEstudiante, pPlanEstudios);
 }
        /**
         * Guarda los datos del Estudiante en la base de datos
         **/
        public bool GuardarDatosEstudiantes(Estudiante pEstudiante, int pPlanEstudios)
        {
            IMetodosEstudiante _metEstudiante = new MetodosEstudiante();
            _objConexionBase = new Inclutec_BDEntities();
            try
            {
                if (_metEstudiante.EstudianteExiste(pEstudiante.Id_Carnet))
                {
                    SIFEstudiante _sifEstudiante = (from _sifEstudiantes in _objConexionBase.SIFEstudiantes
                                                   where _sifEstudiantes.id_Carnet == pEstudiante.Id_Carnet
                                                   select _sifEstudiantes).First();
                    _sifEstudiante.dir_email = pEstudiante.Dir_Email;
                    _sifEstudiante.num_celular = pEstudiante.Num_Celular;
                    _sifEstudiante.num_telefono = pEstudiante.Num_Telefono;
                }
                else
                {
                    SIFEstudiante _sifeEstudiante = new SIFEstudiante();
                    _sifeEstudiante.id_Carnet = pEstudiante.Id_Carnet;
                    _sifeEstudiante.nom_nombre = pEstudiante.Nom_Nombre;
                    _sifeEstudiante.txt_apellido_1 = pEstudiante.Txt_Apellido1;
                    _sifeEstudiante.txt_apellido_2 = pEstudiante.Txt_Apellido2;
                    _sifeEstudiante.num_telefono = pEstudiante.Num_Telefono;
                    _sifeEstudiante.num_celular = pEstudiante.Num_Celular;
                    _sifeEstudiante.dir_email = pEstudiante.Dir_Email;
                    _sifeEstudiante.FK_PlanEstudios_idPlanEstudios = pPlanEstudios;

                    _objConexionBase.AddToSIFEstudiantes(_sifeEstudiante);
                }

                _objConexionBase.SaveChanges();
                _objConexionBase.Connection.Close();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
 /**
  * Actualiza los datos de contacto del estudiante especificado.
  * Retorna verdadero en caso de actualizarse correctamente.
  * Retorna falso en caso contrario.
  **/
 public bool ActualizarContacto(Estudiante pEstudiante, int pPlanEstudios)
 {
     IMetodosEstudiante _metEstudiante = new MetodosEstudiante();
     return _metEstudiante.GuardarDatosEstudiantes(pEstudiante, pPlanEstudios);
 }
        /**
         * Retorna los datos del Estudiante especificado mediante el Carnet
         **/
        public Estudiante ObtenerDatosEstudiante(string pCarnet, bool pExisteBase)
        {
            try
            {
                Estudiante _estEstudiante = new Estudiante();

                if (pExisteBase)
                {
                    _objConexionBase = new Inclutec_BDEntities();

                    SIFEstudiante _sifEstudiante = (from _sifEstudiantes in _objConexionBase.SIFEstudiantes
                                                    where _sifEstudiantes.id_Carnet == pCarnet
                                                    select _sifEstudiantes).First();

                    _objConexionBase.Connection.Close();

                    _estEstudiante.Id_Carnet = _sifEstudiante.id_Carnet;
                    _estEstudiante.Nom_Nombre = _sifEstudiante.nom_nombre;
                    _estEstudiante.Num_Celular = _sifEstudiante.num_celular;
                    _estEstudiante.Num_Telefono = _sifEstudiante.num_telefono;
                    _estEstudiante.Txt_Apellido1 = _sifEstudiante.txt_apellido_1;
                    _estEstudiante.Txt_Apellido2 = _sifEstudiante.txt_apellido_2;
                    _estEstudiante.Dir_Email = _sifEstudiante.dir_email;
                }
                else
                {
                    _objConexionWS = new wsDar.AdmisionyRegistro();

                    DataSet _dsDatosEstudiante = _objConexionWS.IESCDATOSESTUDIANTE_Buscar(pCarnet);
                    DataRow _drEstudiante = _dsDatosEstudiante.Tables[0].Rows[0];

                    String[] _strNombreEstudiante = _drEstudiante["NOM_ESTUDIANTE"].ToString().Split(' ');

                    _estEstudiante.Id_Carnet = _drEstudiante["IDE_ESTUDIANTE"].ToString();
                    _estEstudiante.Nom_Nombre = _strNombreEstudiante[2];
                    if (_strNombreEstudiante.Length == 4)
                    {
                        _estEstudiante.Nom_Nombre += " " + _strNombreEstudiante[3];
                    }
                    _estEstudiante.Txt_Apellido1 = _strNombreEstudiante[0];
                    _estEstudiante.Txt_Apellido2 = _strNombreEstudiante[1];
                    _estEstudiante.Num_Telefono = _drEstudiante["NUM_TELEFONO"].ToString();
                    _estEstudiante.Num_Celular = _drEstudiante["NUM_CELULAR"].ToString();
                    _estEstudiante.Dir_Email = _drEstudiante["DIR_CORREO"].ToString();

                }
                return _estEstudiante;
            }
            catch (Exception)
            {
                return null;
            }
        }