public List <Grupo> seleccionarGrupos(Semestre s)
        {
            // Creamos lista vacía en caso de Excepcion
            List <Grupo> listaGrupos = new List <Grupo>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                if (s.idSemestre == 0)
                {
                    listaGrupos = daoGrupos.seleccionarGrupos();
                }
                else if (s.idSemestre > 0)
                {
                    listaGrupos = daoGrupos.seleccionarGruposPorSemestre(s);
                }
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultado
            return(listaGrupos);
        }
        public List <carreras> seleccionarCarrerasADO(int estado = 0)
        {
            // Creamos lista vacía en caso de Excepcion
            List <carreras> listaCarreras = new List <carreras>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                listaCarreras =
                    db.carreras.Where(
                        c => c.estado == estado &&
                        c.abreviatura != "BGRAL" &&
                        c.abreviatura != "Todas").ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(listaCarreras);
        }
        public List <Estudiante> seleccionarEstudiantesPorGrupo(Grupo g)
        {
            if (g == null)
            {
                return(seleccionarEstudiantes());
            }

            List <Estudiante> listaEstudiantes = new List <Estudiante>();

            // Si algo sale mal, se lo notificaremos al usuario.
            try
            {
                listaEstudiantes = daoEstudiantes.seleccionarEstudiantesPorGrupo(g);
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }


            return(listaEstudiantes);
        }
Ejemplo n.º 4
0
        public static ResultadoOperacion iniciarSesion(string usuario, string contrasena)
        {
            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                usuarioActivo =
                    daoUsuarios.
                    seleccionarUsuarioPorUsuarioContrasena(
                        usuario,
                        contrasena);
            }
            catch (MySqlException e)
            {
                return(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                return(ControladorExcepciones.crearResultadoOperacionException(e));
            }


            return
                (usuarioActivo != null ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Login")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorCredencialesIncorrectas,
                     "Login"));
        }
        public List <estudiantes> seleccionarEstudiantesPorGrupo(grupos g)
        {
            if (g == null)
            {
                return(seleccionarEstudiantesADO());
            }

            List <estudiantes> listaEstudiantes = new List <estudiantes>();

            // Si algo sale mal, se lo notificaremos al usuario.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();
                g = db.grupos.Single(g1 => g1.idGrupo == g.idGrupo);

                List <grupos_estudiantes> listaGE = g.grupos_estudiantes.ToList();

                foreach (grupos_estudiantes ge in listaGE)
                {
                    listaEstudiantes.Add(ge.estudiantes);
                }
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }


            return(listaEstudiantes);
        }
        public List <grupos> seleccionarGrupos(semestres s)
        {
            // Creamos lista vacía en caso de Excepcion
            List <grupos> listaGrupos = new List <grupos>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                listaGrupos =
                    db.grupos.Where(g => g.idSemestre == s.idSemestre).
                    OrderBy(g => g.semestre).
                    ThenBy(g => g.turno).
                    ThenBy(g => g.especialidad).
                    ThenBy(g => g.letra).
                    ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultado
            return(listaGrupos);
        }
        public List <docentes> seleccionarDocentes(string s)
        {
            List <docentes> listaDocentes = new List <docentes>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                listaDocentes =
                    db.docentes.Where(
                        d => d.nombres.Contains(s) ||
                        d.apellidom.Contains(s) ||
                        d.apellidop.Contains(s) ||
                        (
                            d.nombres.Trim() + " " +
                            d.apellidop.Trim() + " " +
                            d.apellidom.Trim()
                        ).Contains(s) ||
                        d.curp.Contains(s)).ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultado
            return(listaDocentes);
        }
        public List <Estudiante> seleccionarEstudiantesParametros(
            string coincidencia,
            bool nombrecompleto,
            bool nombres,
            bool apellidoPaterno,
            bool apellidoMaterno,
            bool curp,
            bool nss,
            bool numeroDeControl,
            Grupo g
            )
        {
            List <Estudiante> listaEstudiantes = new List <Estudiante>();

            try
            {
                if (g == null)
                {
                    listaEstudiantes =
                        daoEstudiantes.
                        seleccionarEstudiantesCondicional(
                            numeroDeControl,
                            curp,
                            nombrecompleto,
                            nombres,
                            apellidoPaterno,
                            apellidoMaterno,
                            nss,
                            coincidencia);
                }
                else
                {
                    listaEstudiantes =
                        daoEstudiantes.
                        seleccionarEstudiantesPorGrupoCondicional(
                            g,
                            numeroDeControl,
                            curp,
                            nombrecompleto,
                            nombres,
                            apellidoPaterno,
                            apellidoMaterno,
                            nss,
                            coincidencia);
                }
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
                throw;
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
                throw;
            }

            return(listaEstudiantes);
        }
        // Eliminación
        public ResultadoOperacion eliminarEstudiante(Estudiante e)
        {
            ResultadoOperacion innerRO = null;

            int eliminado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                // Validamos que no pertenezca a grupos...
                if (daoGrupo_Estudiante.seleccionarGrupos_Estudiantes(e).Count > 0)
                {
                    return
                        (new ResultadoOperacion(
                             EstadoOperacion.ErrorDependenciaDeDatos,
                             "El estudiante pertenece a uno o más grupos"));
                }

                eliminado = daoEstudiantes.eliminarEstudiante(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
                (eliminado == 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Estudiante eliminado")
                :
                 eliminado > 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han eliminado dos o más estudiantes",
                     "SemElim " + eliminado.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.NingunResultado,
                     "Estudiante no eliminado",
                     null,
                     innerRO));
        }
        public ResultadoOperacion eliminarDocente(Docente d)
        {
            ResultadoOperacion innerRO = null;

            int eliminado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                // Validamos que no tenga cátedras...
                if (daoCatedras.seleccionarCatedrasPorDocente(d).Count > 0)
                {
                    return
                        (new ResultadoOperacion(
                             EstadoOperacion.ErrorDependenciaDeDatos,
                             "El docente imparte clases a uno o más grupos"));
                }

                eliminado = daoDocentes.eliminarDocente(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
                (eliminado == 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Docente eliminado")
                :
                 eliminado > 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han eliminado dos o más docentes",
                     "DocElim " + eliminado.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Docente no eliminado",
                     null,
                     innerRO));
        }
        public ResultadoOperacion eliminarGrupo(Grupo g)
        {
            // Validamos que no tenga alumnos dependientes
            if (controladorEstudiantes.seleccionarEstudiantesPorGrupo(g).Count > 0)
            {
                return
                    (new ResultadoOperacion(
                         EstadoOperacion.ErrorDependenciaDeDatos,
                         "El grupo contiene estudiantes"));
            }

            ResultadoOperacion innerRO = null;

            int eliminado = 0;

            // Si hay algún error durante la ejecución de la operación
            // se devolverá el respectivo resultado de operación.
            try
            {
                eliminado = daoGrupos.eliminarGrupo(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
                (eliminado == 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Grupo eliminado")
                :
                 eliminado > 1 ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han eliminado dos o más grupos",
                     "GrupElim " + eliminado.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Grupo no eliminado",
                     null,
                     innerRO));
        }
        public ResultadoOperacion eliminarSemestre(semestres s)
        {
            CBTis123_Entities db = Vinculo_DB.generarContexto();

            // Validamos que no tenga grupos dependientes
            if (db.grupos.Where(g => g.idSemestre == s.idSemestre).Count() > 0)
            {
                return
                    (new ResultadoOperacion(
                         EstadoOperacion.ErrorDependenciaDeDatos,
                         "El semestre contiene grupos"));
            }

            ResultadoOperacion innerRO = null;

            int eliminado = 0;

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

                eliminado = 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
                (eliminado > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Semestre eliminado")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.NingunResultado,
                     "Semestre no eliminado",
                     null,
                     innerRO));
        }
        public ResultadoOperacion modificarListaDeCatedras(List <Catedra> listaCatedras)
        {
            ResultadoOperacion innerRO = null;
            int modificadas            = 0;

            // Realizamos la operación, y si hay algún error, se mostrará al usuario.
            try
            {
                foreach (Catedra c in listaCatedras)
                {
                    modificadas += daoCatedras.modificarCatedra(c);
                }
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Devolvemos los resultados.
            return
                (modificadas == listaCatedras.Count
                ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Catedras guardadas")
                :
                 modificadas > listaCatedras.Count
                ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han modificado " + (listaCatedras.Count + 1) + " o más cátedras",
                     "CatMod " + modificadas,
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Error al modificar una o todas las cátedras",
                     "CatMod " + modificadas,
                     innerRO));
        }
        public ResultadoOperacion registrarCatedras(List <Catedra> listaCatedras)
        {
            ResultadoOperacion innerRO = null;
            int registradas            = 0;

            // Si hay algún error durante la ejecución, se mostrará
            // resultado de la operación.
            try
            {
                foreach (Catedra c in listaCatedras)
                {
                    registradas += daoCatedras.insertarCatedra(c);
                }
            }
            catch (MySqlException e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionMySqlException(e);
            }
            catch (Exception e)
            {
                innerRO = ControladorExcepciones.crearResultadoOperacionException(e);
            }

            // Se devolverá el estado de las materias insertadas.
            return
                (registradas == listaCatedras.Count ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Clases registradas")
                :
                 registradas > listaCatedras.Count ?
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Se han registrado " + (listaCatedras.Count + 1) + " o más clases",
                     "CateReg " + registradas.ToString(),
                     innerRO)
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Error al registrar una o más cátedras",
                     "CateReg " + registradas.ToString(),
                     innerRO));
        }
        private List <Materia> seleccionarMateriasPorGrupo(Grupo g)
        {
            List <Materia> listaMaterias = new List <Materia>();

            try
            {
                listaMaterias = daoMaterias.seleccionarMateriasPorGrupo(g);
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(listaMaterias);
        }
        public ResultadoOperacion modificarListaDeCatedras(List <catedras> listaCatedras)
        {
            ResultadoOperacion innerRO = null;
            int modificadas            = 0;

            // Realizamos la operación, y si hay algún error, se mostrará al usuario.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                foreach (catedras c in listaCatedras)
                {
                    catedras c1 = db.catedras.Single(c2 => c2.idCatedra == c.idCatedra);

                    c1.idDocente = c.idDocente;
                    c1.idGrupo   = c.idGrupo;
                    c1.idMateria = c.idMateria;
                }

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

            // Devolvemos los resultados.
            return
                (modificadas > 0 ?
                 new ResultadoOperacion(
                     EstadoOperacion.Correcto,
                     "Catedras guardadas")
                :
                 new ResultadoOperacion(
                     EstadoOperacion.ErrorAplicacion,
                     "Error al modificar una o todas las cátedras",
                     "CatMod " + modificadas,
                     innerRO));
        }
        public Docente seleccionarDocente(int idDocente)
        {
            Docente d = null;

            try
            {
                d = daoDocentes.seleccionarDocente(idDocente);
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(d);
        }
        public List <catedras> seleccionarCatedrasPorGrupo(grupos g)
        {
            List <catedras> listaCatedras = new List <catedras>();

            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                listaCatedras = db.catedras.Where(c => c.idGrupo == g.idGrupo).ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(listaCatedras);
        }
        // Métodos de manipulación del modelo.
        // Selección
        public List <semestres> seleccionarSemestres()
        {
            CBTis123_Entities dbContext      = Vinculo_DB.generarContexto();
            List <semestres>  listaSemestres = new List <semestres>();

            // Si hay algún error durante la ejecución de la operación
            // se mostrará el respectivo resultado de operación.
            try
            {
                listaSemestres = dbContext.semestres.ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(listaSemestres);
        }
        public List <Semestre> seleccionarSemestresLista()
        {
            List <Semestre> listaSemestres = new List <Semestre>();

            // Creamos el semestre de ningún semestre
            Semestre s = new Semestre();

            s.idSemestre   = -1;
            s.nombre       = "Ningún semestre";
            s.nombreCorto2 = "-";

            // Si hay algún error durante la ejecución de la operación
            // se mostrará el respectivo resultado de operación.
            try
            {
                listaSemestres = daoSemestres.seleccionarSemestres();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            if (listaSemestres.Count > 0)
            {
                s              = new Semestre();
                s.idSemestre   = 0;
                s.nombre       = "Todos";
                s.nombreCorto2 = "*";
            }

            // Agregamos el semestre comodín
            listaSemestres.Add(s);

            return(listaSemestres);
        }
        public List <Carrera> seleccionarCarreras(string acuerdo = "2013")
        {
            // Creamos lista vacía en caso de Excepcion
            List <Carrera> listaCarreras = new List <Carrera>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                listaCarreras = daoCarreras.seleccionarCarrerasPorAcuerdo(acuerdo);
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            return(listaCarreras);
        }
        // Métodos misceláneos
        public List <Catedra> crearListaCatedrasGrupo(Grupo g)
        {
            List <Catedra> listaCatedras = new List <Catedra>();

            // Intentamos llevar a cabo la operación.
            // Si algo sale mal, se le notificará al usuario.
            try
            {
                List <Materia> listaMaterias = daoMaterias.seleccionarMateriasPorGrupo(g);

                foreach (Materia m in listaMaterias)
                {
                    Catedra c =
                        DAOCatedras.
                        crearCatedra(
                            -1,
                            100,
                            m.idMateria,
                            g.idGrupo,
                            null,
                            m,
                            g);

                    listaCatedras.Add(c);
                }
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultados
            return(listaCatedras);
        }
        public Grupo seleccionarGrupo(int idGrupo)
        {
            // Creamos un grupo nulo para devolverlo luego
            Grupo g = null;

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                g = daoGrupos.seleccionarGrupo(idGrupo);
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultado
            return(g);
        }
        // Métodos de manipulación del modelo
        // Selección
        public List <docentes> seleccionarDocentes()
        {
            List <docentes> listaDocentes = new List <docentes>();

            // Intentamos realizar la operación. Si hubo algún error,
            // el controlador visual mostrará el mensaje correspondiente.
            try
            {
                CBTis123_Entities db = Vinculo_DB.generarContexto();

                listaDocentes = db.docentes.ToList();
            }
            catch (MySqlException e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionMySqlException(e));
            }
            catch (Exception e)
            {
                ControladorVisual.mostrarMensaje(ControladorExcepciones.crearResultadoOperacionException(e));
            }

            // Devolvemos resultado
            return(listaDocentes);
        }
        // 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));
        }
        // 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));
        }