// Modificación
        public ResultadoOperacion modificarDocente(
            int idDocente,
            string genero,
            int tarjeta,
            string curp,
            string rfc,
            string nombres,
            string apellidop,
            string apellidom,
            string estado,
            string correoi,
            string correop,
            string nivelmedioTit,
            string nivelmedio,
            string dnivelmedio,
            string tecnicosuperiorTit,
            string tecnicosuperior,
            string dtecnicosuperior,
            string licenciatura1Tit,
            string licenciatura1,
            string dlicenciatura1,
            string licenciatura2Tit,
            string licenciatura2,
            string dlicenciatura2,
            string especialidad1,
            string despecialidad1,
            string especialidad2,
            string despecialidad2,
            string maestria1Tit,
            string maestria1,
            string dmaestria1,
            string maestria2Tit,
            string maestria2,
            string dmaestria2,
            string doctoradoTit,
            string doctorado,
            string ddoctorado,
            string telefonoCelular,
            string telefono,
            string paisNacimiento,
            string estadoNacimiento,
            DateTime fechaNacimiento,
            string auxRevision
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(genero) ||
                !ValidadorDeTexto.esValido(curp) ||
                !ValidadorDeTexto.esValido(rfc) ||
                !ValidadorDeTexto.esValido(nombres) ||
                !ValidadorDeTexto.esValido(apellidop) ||
                !ValidadorDeTexto.esValido(apellidom) ||
                !ValidadorDeTexto.esValido(estado) ||
                !ValidadorDeTexto.esValido(correoi) ||
                !ValidadorDeTexto.esValido(correop) ||
                !ValidadorDeTexto.esValido(nivelmedioTit) ||
                !ValidadorDeTexto.esValido(nivelmedio) ||
                !ValidadorDeTexto.esValido(dnivelmedio) ||
                !ValidadorDeTexto.esValido(tecnicosuperiorTit) ||
                !ValidadorDeTexto.esValido(tecnicosuperior) ||
                !ValidadorDeTexto.esValido(dtecnicosuperior) ||
                !ValidadorDeTexto.esValido(licenciatura1Tit) ||
                !ValidadorDeTexto.esValido(licenciatura1) ||
                !ValidadorDeTexto.esValido(dlicenciatura1) ||
                !ValidadorDeTexto.esValido(licenciatura2Tit) ||
                !ValidadorDeTexto.esValido(licenciatura2) ||
                !ValidadorDeTexto.esValido(dlicenciatura2) ||
                !ValidadorDeTexto.esValido(especialidad1) ||
                !ValidadorDeTexto.esValido(despecialidad1) ||
                !ValidadorDeTexto.esValido(especialidad2) ||
                !ValidadorDeTexto.esValido(despecialidad2) ||
                !ValidadorDeTexto.esValido(maestria1Tit) ||
                !ValidadorDeTexto.esValido(maestria1) ||
                !ValidadorDeTexto.esValido(dmaestria1) ||
                !ValidadorDeTexto.esValido(maestria2Tit) ||
                !ValidadorDeTexto.esValido(maestria2) ||
                !ValidadorDeTexto.esValido(dmaestria2) ||
                !ValidadorDeTexto.esValido(doctoradoTit) ||
                !ValidadorDeTexto.esValido(doctorado) ||
                !ValidadorDeTexto.esValido(ddoctorado) ||
                !ValidadorDeTexto.esValido(telefonoCelular) ||
                !ValidadorDeTexto.esValido(telefono) ||
                !ValidadorDeTexto.esValido(paisNacimiento) ||
                !ValidadorDeTexto.esValido(estadoNacimiento) ||
                !ValidadorDeTexto.esValido(auxRevision)
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos"));
            }

            ResultadoOperacion innerRO = null;

            Docente d =
                DAODocentes.
                crearDocente(
                    idDocente,
                    genero,
                    tarjeta,
                    curp,
                    rfc,
                    nombres,
                    apellidop,
                    apellidom,
                    estado,
                    correoi,
                    correop,
                    nivelmedioTit,
                    nivelmedio,
                    dnivelmedio,
                    tecnicosuperiorTit,
                    tecnicosuperior,
                    dtecnicosuperior,
                    licenciatura1Tit,
                    licenciatura1,
                    dlicenciatura1,
                    licenciatura2Tit,
                    licenciatura2,
                    dlicenciatura2,
                    especialidad1,
                    despecialidad1,
                    especialidad2,
                    despecialidad2,
                    maestria1Tit,
                    maestria1,
                    dmaestria1,
                    maestria2Tit,
                    maestria2,
                    dmaestria2,
                    doctoradoTit,
                    doctorado,
                    ddoctorado,
                    telefonoCelular,
                    telefono,
                    paisNacimiento,
                    estadoNacimiento,
                    fechaNacimiento,
                    auxRevision);

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                modificado = daoDocentes.modificarDocente(d);
            }
            catch (MySqlException ex)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(ex);
            }
            catch (Exception ex)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(ex);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado == 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Docente modificado")
                :
                 modificado > 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han registrado dos o más docentes",
                     "DocMod " + modificado.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Docente no modificado",
                     null,
                     innerRO));
        }
        // Modificación
        public ResultadoOperacion modificarEstudiante(
            int idEstudiante,
            string nombres,
            string apellidoPaterno,
            string apellidoMaterno,
            string curp,
            string numeroDeControl,
            string nss,
            bool verificado
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(nombres) ||
                !ValidadorDeTexto.esValido(apellidoPaterno) ||
                !ValidadorDeTexto.esValido(apellidoMaterno) ||
                !ValidadorDeTexto.esValido(curp) ||
                // Se comentó la línea de abajo, porque
                // la vista aún no implementa el campo
                //!ValidadorDeTexto.esValido(nss) ||
                !ValidadorDeTexto.esValido(numeroDeControl)
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos"));
            }

            ResultadoOperacion innerRO = null;

            Estudiante e =
                DAOEstudiantes.
                crearEstudiante(
                    idEstudiante,
                    numeroDeControl,
                    curp,
                    nombres.Trim() + " " + apellidoPaterno.Trim() + " " + apellidoMaterno.Trim(),
                    nombres.Trim(),
                    apellidoPaterno.Trim(),
                    apellidoMaterno.Trim(),
                    nss,
                    verificado
                    );

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                modificado = daoEstudiantes.modificarEstudiante(e);
            }
            catch (MySqlException ex)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(ex);
            }
            catch (Exception ex)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(ex);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado == 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Estudiante modificado")
                :
                 modificado > 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han modificado dos o más estudiantes",
                     "EstMod " + modificado.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Estudiante no modificado",
                     null,
                     innerRO));
        }
        // Modificación
        public ResultadoOperacion modificarGrupo(
            int idGrupo,
            int idSemestre,
            int semestre,
            string letra,
            string turno,
            string especialidad,
            Semestre semestreObj,
            Carrera especialidadObj
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(letra) ||
                !ValidadorDeTexto.esValido(turno) ||
                !ValidadorDeTexto.esValido(especialidad)
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos"));
            }

            ResultadoOperacion innerRO = null;

            Grupo g =
                DAOGrupos.crearGrupo(
                    idGrupo,
                    idSemestre,
                    semestre,
                    letra,
                    turno,
                    especialidad,
                    semestreObj,
                    especialidadObj);

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                modificado = daoGrupos.modificarGrupo(g);
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado == 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Grupo modificado")
                :
                 modificado > 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han modificado dos o más grupos",
                     "GroupReg " + modificado.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Grupo no modificado",
                     null,
                     innerRO));
        }
        public ResultadoOperacion modificarGrupo(
            int idGrupo,
            int idSemestre,
            int semestre,
            string letra,
            string turno,
            string especialidad,
            semestres semestreObj,
            carreras especialidadObj
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(letra) ||
                !ValidadorDeTexto.esValido(turno) ||
                !ValidadorDeTexto.esValido(especialidad)
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos"));
            }

            ResultadoOperacion innerRO = null;

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                grupos g = db.grupos.Single(g1 => g1.idGrupo == idGrupo);

                g.especialidad = especialidadObj.abreviatura;
                g.idCarrera    = especialidadObj.idCarrera;
                g.idSemestre   = semestreObj.idSemestre;
                g.letra        = letra;
                g.semestre     = semestre;
                g.turno        = turno[0].ToString().ToUpper();

                modificado = db.SaveChanges();
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Grupo modificado")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Grupo no modificado",
                     null,
                     innerRO));
        }
        // Modificación
        public ResultadoOperacion modificarSemestre(
            int idSemestre,
            string nombre,
            string nombreCorto,
            string nombreCorto2,
            string nombreCorto3,
            DateTime fechai_p1,
            DateTime fechaf_p1,
            DateTime fechai_p2,
            DateTime fechaf_p2,
            DateTime fechai_p3,
            DateTime fechaf_p3
            )
        {
            // Verificamos que los datos introducidos
            // sean válidos para la base de datos.
            if (
                !ValidadorDeTexto.esValido(nombre) ||
                !ValidadorDeTexto.esValido(nombreCorto) ||
                !ValidadorDeTexto.esValido(nombreCorto2) ||
                !ValidadorDeTexto.esValido(nombreCorto3) ||
                fechaf_p1 < fechai_p1 ||
                fechai_p2 <= fechaf_p1 ||
                fechaf_p2 < fechai_p2 ||
                fechai_p3 <= fechaf_p2 ||
                fechaf_p3 < fechai_p3
                )
            {
                // Devolvemos un error si es que no son válidos.
                return(new ResultadoOperacion(
                           EstadoOperacion.ErrorDatosIncorrectos,
                           "No utilice caracteres especiales o inválidos. Verifique sus fechas."));
            }

            CBTis123_Entities  dbContext = Vinculo_DB.generarContexto();
            ResultadoOperacion innerRO   = null;

            int modificado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                semestres s = dbContext.semestres.Single(s1 => s1.idSemestre == idSemestre);

                s.nombre       = nombre;
                s.nombrecorto  = nombreCorto;
                s.nombrecorto2 = nombreCorto2;
                s.nombrecorto3 = nombreCorto3;
                s.fechaf_p1    = fechaf_p1;
                s.fechaf_p2    = fechaf_p2;
                s.fechaf_p3    = fechaf_p3;
                s.fechai_p1    = fechai_p1;
                s.fechai_p2    = fechai_p2;
                s.fechai_p3    = fechai_p3;

                modificado = dbContext.SaveChanges();
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Si no hubo problema, se devolverá el resultado correspondiente.
            return
                (modificado > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Semestre modificado")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.NingunResultado,
                     "Semestre no modificado",
                     null,
                     innerRO));
        }