Exemplo n.º 1
0
        public string[] EditarAsignatura(Entidades.MDP.Asignatura asignatura, String id)
        {
            Conexion conexion = new Conexion();

            conexion.AbrirConexion();
            conexion.BeginTransaction();

            try
            {
                string query = "UPDATE asignaturas SET codigo= '" + asignatura.Codigo + "', nombre= '" + asignatura.Nombre + "', creditos=" + asignatura.Creditos + " WHERE codigo = '" + id + "'; ";

                MySqlCommand commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                commandDatabase.CommandTimeout = 60;

                MySqlDataReader reader;
                reader = commandDatabase.ExecuteReader();

                conexion.CommitTransaction();
                return(new string[] { "Exito", this.TipoRetorno.exito.ToString() });
            }
            catch (Exception e)
            {
                if (e.ToString().Contains("Duplicate"))
                {
                    return(new string[] { "duplicado", this.TipoRetorno.error.ToString() });
                }
                conexion.RollBack();
                return(new string[] { e.ToString(), this.TipoRetorno.error.ToString() });
            }
        }
Exemplo n.º 2
0
 public ActionResult <string> Put(string id, [FromBody] Entidades.MDP.Asignatura value)
 {
     if (ModelState.IsValid)
     {
         Request.Headers.TryGetValue("Authorization", out var header);
         var token = header.ToString();
         Logica.MU.Usuario usuarioLogica = new Logica.MU.Usuario();
         var validarToken = usuarioLogica.validarToken(token);
         if (validarToken[1] == "1")
         {
             var respuesta = logicaAsignatura.EditarAsignatura(id, value.Codigo, value.Nombre, value.Creditos);
             if (respuesta[1] == "1")
             {
                 return(Ok(respuesta[0]));
             }
             else
             {
                 return(BadRequest(respuesta[0]));
             }
         }
         else
         {
             return(BadRequest(validarToken[0]));
         }
     }
     else
     {
         return(BadRequest(value));
     }
 }
Exemplo n.º 3
0
        public string[] EditarAsignatura(string nuevoCodigo, string codigo, string nombre, int creditos)
        {
            Entidades.MDP.Asignatura entidadMDPAsignatura = new Entidades.MDP.Asignatura();
            entidadMDPAsignatura.Codigo   = codigo;
            entidadMDPAsignatura.Nombre   = nombre;
            entidadMDPAsignatura.Creditos = creditos;

            Datos.MDP.Asignatura datosMDPAsignatura = new Datos.MDP.Asignatura();

            return(datosMDPAsignatura.EditarAsignatura(entidadMDPAsignatura, nuevoCodigo));
        }
Exemplo n.º 4
0
        public string[] AgregarAsignatura(string codigo, string nombre, int creditos, int numeroDecreto, string path)
        {
            Entidades.MDP.Asignatura entidadMDPAsignatura = new Entidades.MDP.Asignatura();
            entidadMDPAsignatura.Codigo        = codigo;
            entidadMDPAsignatura.Nombre        = nombre;
            entidadMDPAsignatura.Creditos      = creditos;
            entidadMDPAsignatura.NumeroDecreto = numeroDecreto;

            Datos.MDP.Asignatura datosMDPAsignatura = new Datos.MDP.Asignatura();

            return(datosMDPAsignatura.AgregarAsignatura(entidadMDPAsignatura, path));
        }
Exemplo n.º 5
0
        public string[] AgregarAsignatura(Entidades.MDP.Asignatura asignatura, string path)
        {
            Conexion conexion = new Conexion();

            conexion.AbrirConexion();
            conexion.BeginTransaction();

            try
            {
                string query = "BEGIN;" +
                               "INSERT INTO asignaturas(`codigo`, `nombre`,`creditos`) VALUES ( '" + asignatura.Codigo + "', '" + asignatura.Nombre + "', " + asignatura.Creditos + ");" +
                               "INSERT INTO decretos_asignaturas(`numero_decreto`, `codigo_asignatura`) VALUES (" + asignatura.NumeroDecreto + ", '" + asignatura.Codigo + "');" +
                               "INSERT INTO programasAcademicos(`codigo`, `path`) VALUES ( '" + asignatura.Codigo + "','" + path + "');" +
                               "COMMIT;";

                MySqlCommand commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                commandDatabase.CommandTimeout = 60;

                MySqlDataReader reader;
                reader = commandDatabase.ExecuteReader();

                conexion.CommitTransaction();
                return(new string[] { "Exito", this.TipoRetorno.exito.ToString() });
            }

            catch (Exception e)
            {
                if (e.ToString().Contains("Duplicate"))
                {
                    try
                    {
                        string query = "BEGIN;" +
                                       "INSERT INTO decretos_asignaturas(`numero_decreto`, `codigo_asignatura`) VALUES (" + asignatura.NumeroDecreto + ", '" + asignatura.Codigo + "');" +
                                       "COMMIT;";

                        MySqlCommand commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                        commandDatabase.CommandTimeout = 60;

                        MySqlDataReader reader;
                        reader = commandDatabase.ExecuteReader();

                        conexion.CommitTransaction();
                        return(new string[] { "Exito", this.TipoRetorno.exito.ToString() });
                    }
                    catch (Exception e2)
                    {
                        return(new string[] { e2.ToString(), this.TipoRetorno.error.ToString() });
                    }
                }
                conexion.RollBack();
                return(new string[] { e.ToString(), this.TipoRetorno.error.ToString() });
            }
        }
Exemplo n.º 6
0
        public List <Entidades.MDP.Asignatura> MostrarAsignatura(String id)
        {
            Conexion conexion = new Conexion();

            conexion.AbrirConexion();
            conexion.BeginTransaction();

            try
            {
                string query = "SELECT * FROM asignaturas WHERE codigo = '" + id + "' ;";

                // si id es "null" extrae todos los programas
                if (id == null)
                {
                    query = "SELECT * FROM asignaturas;";
                }

                MySqlCommand commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                commandDatabase.CommandTimeout = 60;

                MySqlDataReader reader;
                reader = commandDatabase.ExecuteReader();
                //reader.Read();

                List <Entidades.MDP.Asignatura> asignaturas = new List <Entidades.MDP.Asignatura>();


                while (reader.Read())
                {
                    Entidades.MDP.Asignatura asignatura = new Entidades.MDP.Asignatura();

                    asignatura.Codigo   = reader["codigo"].ToString();
                    asignatura.Nombre   = reader["nombre"].ToString();
                    asignatura.Creditos = Convert.ToInt32(reader["creditos"]);

                    asignaturas.Add(asignatura);
                }

                conexion.CommitTransaction();
                conexion.CerrarConexion();
                return(asignaturas);
            }
            catch (Exception e)
            {
                conexion.RollBack();
                conexion.CerrarConexion();
                return(null);
            }
        }
Exemplo n.º 7
0
        public string[] EditarAsignaturaArchivo(string nuevoCodigo, string codigo, string nombre, int creditos, string path)
        {
            Entidades.MDP.Asignatura entidadMDPAsignatura = new Entidades.MDP.Asignatura();
            entidadMDPAsignatura.Codigo   = codigo;
            entidadMDPAsignatura.Nombre   = nombre;
            entidadMDPAsignatura.Creditos = creditos;

            Datos.MDP.Asignatura datosMDPAsignatura = new Datos.MDP.Asignatura();
            var respuesta = datosMDPAsignatura.EditarAsignatura(entidadMDPAsignatura, nuevoCodigo);

            if (respuesta[1] == "1")
            {
                return(datosMDPAsignatura.EditarPathArchivo(nuevoCodigo, path));
            }
            else
            {
                return(respuesta);
            }
        }
Exemplo n.º 8
0
        public List <Entidades.MDP.Asignatura> MostrarDecretos_asignaturas(int id)
        {
            Conexion conexion = new Conexion();

            conexion.AbrirConexion();
            conexion.BeginTransaction();

            try
            {
                string query = "SELECT * FROM asignaturas WHERE codigo IN (SELECT codigo_asignatura FROM decretos_asignaturas WHERE numero_decreto ='" + id + "');";

                MySqlCommand commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                commandDatabase.CommandTimeout = 60;

                MySqlDataReader reader;
                reader = commandDatabase.ExecuteReader();
                //reader.Read();

                List <Entidades.MDP.Asignatura> asignaturas = new List <Entidades.MDP.Asignatura>();

                while (reader.Read())
                {
                    Entidades.MDP.Asignatura asignatura = new Entidades.MDP.Asignatura();

                    asignatura.Codigo        = reader["codigo"].ToString();
                    asignatura.Nombre        = reader["nombre"].ToString();
                    asignatura.Creditos      = Convert.ToInt32(reader["creditos"]);
                    asignatura.NumeroDecreto = id;

                    asignaturas.Add(asignatura);
                }

                conexion.CommitTransaction();
                conexion.CerrarConexion();
                return(asignaturas);
            }
            catch (Exception e)
            {
                conexion.RollBack();
                conexion.CerrarConexion();
                return(null);
            }
        }
Exemplo n.º 9
0
        public List <Entidades.MC.AsignaturasEquivalentesNota> MostrarHomologacion_equivalente(string programaOrigen, string programaObjetivo, string run)
        {
            Conexion conexion = new Conexion();

            conexion.AbrirConexion();
            conexion.BeginTransaction();
            try
            {
                string query = "(SELECT " +
                               "programaOrigen, programaObjetivo, codigoAsignaturaOrigen, codigoAsignaturaObjetivo, nota " +
                               "FROM homologacion_equivalenteHomologacion WHERE(programaOrigen = '" + programaOrigen + "') and(programaObjetivo = '" + programaObjetivo + "') and (run = '" + run + "')) " +
                               "order by codigoAsignaturaOrigen, codigoAsignaturaObjetivo;";

                MySqlCommand commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                commandDatabase.CommandTimeout = 60;

                MySqlDataReader reader;
                reader = commandDatabase.ExecuteReader();
                //reader.Read();

                List <Entidades.MC.EquivalenteNota> equivalentes = new List <Entidades.MC.EquivalenteNota>();

                List <String> codigosAsignaturas = new List <string>();

                while (reader.Read())
                {
                    Entidades.MC.EquivalenteNota equivalente = new Entidades.MC.EquivalenteNota();

                    equivalente.programaOrigen           = reader["programaOrigen"].ToString();
                    equivalente.programaObjetivo         = reader["programaObjetivo"].ToString();
                    equivalente.codigoAsignaturaOrigen   = reader["codigoAsignaturaOrigen"].ToString();
                    equivalente.codigoAsignaturaObjetivo = reader["codigoAsignaturaObjetivo"].ToString();
                    equivalente.nota = Convert.ToSingle(reader["nota"]);

                    codigosAsignaturas.Add(reader["codigoAsignaturaOrigen"].ToString());
                    codigosAsignaturas.Add(reader["codigoAsignaturaObjetivo"].ToString());

                    equivalentes.Add(equivalente);
                }

                conexion.CommitTransaction();
                conexion.CerrarConexion();

                conexion.AbrirConexion();
                conexion.BeginTransaction();

                query = "SELECT * FROM asignaturas WHERE ";
                int cantidadCodigosAsignaturas = codigosAsignaturas.Count - 1;
                int contador = 0;
                foreach (String codigo in codigosAsignaturas)
                {
                    if (contador == cantidadCodigosAsignaturas)
                    {
                        query += " codigo = '" + codigo + "' ;";
                    }
                    else
                    {
                        query += " codigo = '" + codigo + "' or ";
                    }
                    contador++;
                }

                commandDatabase = new MySqlCommand(query, conexion.databaseConnection);
                commandDatabase.CommandTimeout = 60;

                reader = commandDatabase.ExecuteReader();
                List <Entidades.MDP.Asignatura> asignaturas = new List <Entidades.MDP.Asignatura>();


                while (reader.Read())
                {
                    Entidades.MDP.Asignatura asignatura = new Entidades.MDP.Asignatura();

                    asignatura.Codigo   = reader["codigo"].ToString();
                    asignatura.Nombre   = reader["nombre"].ToString();
                    asignatura.Creditos = Convert.ToInt32(reader["creditos"]);

                    asignaturas.Add(asignatura);
                }

                List <Entidades.MC.AsignaturasEquivalentesNota> ListaAsignaturasEquivalentes = new List <Entidades.MC.AsignaturasEquivalentesNota>();
                int cantidadEquivalentes = equivalentes.Count;
                // recorre el arreglo equivalentes
                for (int cont = 0; cont < cantidadEquivalentes; cont++)
                {
                    // Hay 3 casos
                    // si el siguiente existe
                    if (cont + 1 < cantidadEquivalentes)
                    {
                        // si el siguiente CodigoAsignaturaOrigen es igual
                        if (equivalentes[cont].codigoAsignaturaOrigen == equivalentes[cont + 1].codigoAsignaturaOrigen)
                        {
                            //revisa si hay mas de un CodigoAsignaturaOrigen Seguido
                            for (int cont2 = cont; cont2 < cantidadEquivalentes; cont2++)
                            {
                                // si el siguiente no es el mismo CodigoAsignaturaOrigen O no existe
                                if (cont2 + 1 >= cantidadEquivalentes)
                                {
                                    int cantidadAsignaturasSeguidas = cont2 - cont + 1;
                                    // se agregar las equivalencia a la lista de asigntaruas equivalentes
                                    Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                                    asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                                    asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();


                                    //recorre hacia atras para guardar CodigosOrigen
                                    //recorre la lista se asignaturas buscando el igual para guardarlo
                                    foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                    {
                                        if (asig.Codigo == equivalentes[cont2].codigoAsignaturaOrigen)
                                        {
                                            Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                            asignatura.Codigo        = asig.Codigo;
                                            asignatura.Creditos      = asig.Creditos;
                                            asignatura.Nombre        = asig.Nombre;
                                            asignatura.NumeroDecreto = asig.NumeroDecreto;
                                            asignatura.Nota          = equivalentes[cont2].nota;
                                            asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                            break;
                                        }
                                    }
                                    //recorre hacia atras para guardar CodigosObjetivo
                                    for (int temp = cont2; temp > cont2 - cantidadAsignaturasSeguidas; temp--)
                                    {
                                        //recorre la lista se asignaturas buscando el igual para guardarlo
                                        foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                        {
                                            if (asig.Codigo == equivalentes[temp].codigoAsignaturaObjetivo)
                                            {
                                                asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                                break;
                                            }
                                        }
                                    }
                                    ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                                    cont += (cantidadAsignaturasSeguidas) - 1;
                                    break;
                                }
                                if (equivalentes[cont2].codigoAsignaturaOrigen != equivalentes[cont2 + 1].codigoAsignaturaOrigen)
                                {
                                    int cantidadAsignaturasSeguidas = cont2 - cont + 1;
                                    // revisa cuantas vese se repite el patron de codigos
                                    for (int cont3 = cont2 + 1; cont3 <= cantidadEquivalentes; cont3 += cantidadAsignaturasSeguidas)
                                    {
                                        //cuando existe siguiente
                                        if (cont3 == cantidadEquivalentes)
                                        {
                                            int cantidadAsignaturasSeguidasRepetidas = ((cont3 - cont) / cantidadAsignaturasSeguidas);
                                            // se agregar las equivalencia a la lista de asigntaruas equivalentes
                                            Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                                            asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                                            asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                                            //recorre hacia atras para guardar CodigosOrigen
                                            for (int temp = cont3 - 1; temp > cont; temp = temp - cantidadAsignaturasSeguidas)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaOrigen)
                                                    {
                                                        Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                                        asignatura.Codigo        = asig.Codigo;
                                                        asignatura.Creditos      = asig.Creditos;
                                                        asignatura.Nombre        = asig.Nombre;
                                                        asignatura.NumeroDecreto = asig.NumeroDecreto;
                                                        asignatura.Nota          = equivalentes[temp].nota;
                                                        asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                                        break;
                                                    }
                                                }
                                            }
                                            //recorre hacia atras para guardar CodigosObjetivo
                                            for (int temp = cont3 - 1; temp > cont3 - 1 - cantidadAsignaturasSeguidas; temp--)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaObjetivo)
                                                    {
                                                        asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                                        break;
                                                    }
                                                }
                                            }
                                            ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                                            cont += (cantidadAsignaturasSeguidas * cantidadAsignaturasSeguidasRepetidas) - 1;
                                            break;
                                        }
                                        //cuando no se repite
                                        if (equivalentes[cont3].codigoAsignaturaObjetivo != equivalentes[cont3 - cantidadAsignaturasSeguidas].codigoAsignaturaObjetivo)
                                        {
                                            int cantidadAsignaturasSeguidasRepetidas = ((cont3 - cont) / cantidadAsignaturasSeguidas);
                                            // se agregar las equivalencia a la lista de asigntaruas equivalentes
                                            Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                                            asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                                            asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                                            //recorre hacia atras para guardar CodigosOrigen
                                            for (int temp = cont3 - 1; temp > cont; temp = temp - cantidadAsignaturasSeguidas)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaOrigen)
                                                    {
                                                        Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                                        asignatura.Codigo        = asig.Codigo;
                                                        asignatura.Creditos      = asig.Creditos;
                                                        asignatura.Nombre        = asig.Nombre;
                                                        asignatura.NumeroDecreto = asig.NumeroDecreto;
                                                        asignatura.Nota          = equivalentes[temp].nota;
                                                        asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                                        break;
                                                    }
                                                }
                                            }
                                            //recorre hacia atras para guardar CodigosObjetivo
                                            for (int temp = cont3 - 1; temp > cont3 - 1 - cantidadAsignaturasSeguidas; temp--)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaObjetivo)
                                                    {
                                                        asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                                        break;
                                                    }
                                                }
                                            }
                                            ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                                            cont += (cantidadAsignaturasSeguidas * cantidadAsignaturasSeguidasRepetidas) - 1;
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
                        }

                        // si el siguiente CodigoAsignaturaObjetivo es igual
                        else if (equivalentes[cont].codigoAsignaturaObjetivo == equivalentes[cont + 1].codigoAsignaturaObjetivo)
                        {
                            //revisa si hay mas de un CodigoAsignaturaObjetivo Seguido
                            for (int cont2 = cont; cont2 < cantidadEquivalentes; cont2++)
                            {
                                // si el siguiente no es el mismo CodigoAsignaturaObjetivo O no existe
                                if (cont2 + 1 >= cantidadEquivalentes)
                                {
                                    int cantidadAsignaturasSeguidas = cont2 - cont + 1;
                                    // se agregar las equivalencia a la lista de asigntaruas equivalentes
                                    Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                                    asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                                    asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                                    //recorre la lista se asignaturas buscando el igual para guardarlo
                                    foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                    {
                                        if (asig.Codigo == equivalentes[cont2].codigoAsignaturaObjetivo)
                                        {
                                            asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                            break;
                                        }
                                    }


                                    //recorre hacia atras para guardar CodigosOrigen
                                    for (int temp = cont2; temp > cont2 - cantidadAsignaturasSeguidas; temp--)
                                    {
                                        //recorre la lista se asignaturas buscando el igual para guardarlo
                                        foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                        {
                                            if (asig.Codigo == equivalentes[temp].codigoAsignaturaOrigen)
                                            {
                                                Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                                asignatura.Codigo        = asig.Codigo;
                                                asignatura.Creditos      = asig.Creditos;
                                                asignatura.Nombre        = asig.Nombre;
                                                asignatura.NumeroDecreto = asig.NumeroDecreto;
                                                asignatura.Nota          = equivalentes[temp].nota;
                                                asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                                break;
                                            }
                                        }
                                    }
                                    ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                                    cont += (cantidadAsignaturasSeguidas) - 1;
                                    break;
                                }

                                if (equivalentes[cont2].codigoAsignaturaObjetivo != equivalentes[cont2 + 1].codigoAsignaturaObjetivo)
                                {
                                    int cantidadAsignaturasSeguidas = cont2 - cont + 1;
                                    // revisa cuantas vese se repite el patron de codigos
                                    for (int cont3 = cont2 + 1; cont3 <= cantidadEquivalentes; cont3 += cantidadAsignaturasSeguidas)
                                    {
                                        //cuando no existe siguiente
                                        if (cont3 == cantidadEquivalentes)
                                        {
                                            int cantidadAsignaturasSeguidasRepetidas = ((cont3 - cont) / cantidadAsignaturasSeguidas);
                                            // se agregar las equivalencia a la lista de asigntaruas equivalentes
                                            Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                                            asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                                            asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                                            //recorre hacia atras para guardar CodigosObjetivos
                                            for (int temp = cont3 - 1; temp > cont; temp = temp - cantidadAsignaturasSeguidas)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaObjetivo)
                                                    {
                                                        asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                                        break;
                                                    }
                                                }
                                            }
                                            //recorre hacia atras para guardar CodigosOrigen
                                            for (int temp = cont3 - 1; temp > cont3 - 1 - cantidadAsignaturasSeguidas; temp--)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaOrigen)
                                                    {
                                                        Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                                        asignatura.Codigo        = asig.Codigo;
                                                        asignatura.Creditos      = asig.Creditos;
                                                        asignatura.Nombre        = asig.Nombre;
                                                        asignatura.NumeroDecreto = asig.NumeroDecreto;
                                                        asignatura.Nota          = equivalentes[temp].nota;
                                                        asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                                        break;
                                                    }
                                                }
                                            }
                                            ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                                            cont += (cantidadAsignaturasSeguidas * cantidadAsignaturasSeguidasRepetidas) - 1;
                                            break;
                                        }
                                        //cuando no se repite
                                        if (equivalentes[cont3].codigoAsignaturaOrigen != equivalentes[cont3 - cantidadAsignaturasSeguidas].codigoAsignaturaOrigen)
                                        {
                                            int cantidadAsignaturasSeguidasRepetidas = ((cont3 - cont) / cantidadAsignaturasSeguidas);
                                            // se agregar las equivalencia a la lista de asigntaruas equivalentes
                                            Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                                            asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                                            asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                                            //recorre hacia atras para guardar CodigosObjetivos
                                            for (int temp = cont3 - 1; temp > cont; temp = temp - cantidadAsignaturasSeguidas)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaObjetivo)
                                                    {
                                                        asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                                        break;
                                                    }
                                                }
                                            }
                                            //recorre hacia atras para guardar CodigosOrigen
                                            for (int temp = cont3 - 1; temp > cont3 - 1 - cantidadAsignaturasSeguidas; temp--)
                                            {
                                                //recorre la lista se asignaturas buscando el igual para guardarlo
                                                foreach (Entidades.MDP.Asignatura asig in asignaturas)
                                                {
                                                    if (asig.Codigo == equivalentes[temp].codigoAsignaturaOrigen)
                                                    {
                                                        Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                                        asignatura.Codigo        = asig.Codigo;
                                                        asignatura.Creditos      = asig.Creditos;
                                                        asignatura.Nombre        = asig.Nombre;
                                                        asignatura.NumeroDecreto = asig.NumeroDecreto;
                                                        asignatura.Nota          = equivalentes[temp].nota;
                                                        asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                                        break;
                                                    }
                                                }
                                            }
                                            ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                                            cont += (cantidadAsignaturasSeguidas * cantidadAsignaturasSeguidasRepetidas) - 1;
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
                        }
                        // si el siquiente existe y ambos son diferentes
                        else
                        {
                            // se agregar las equivalencia a la lista de asigntaruas equivalentes
                            Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                            asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                            asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                            int numeroAgregado = 0;
                            foreach (Entidades.MDP.Asignatura asig in asignaturas)
                            {
                                if (asig.Codigo == equivalentes[cont].codigoAsignaturaOrigen)
                                {
                                    Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                    asignatura.Codigo        = asig.Codigo;
                                    asignatura.Creditos      = asig.Creditos;
                                    asignatura.Nombre        = asig.Nombre;
                                    asignatura.NumeroDecreto = asig.NumeroDecreto;
                                    asignatura.Nota          = equivalentes[cont].nota;
                                    asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                    numeroAgregado++;
                                }
                                if (asig.Codigo == equivalentes[cont].codigoAsignaturaObjetivo)
                                {
                                    asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                    numeroAgregado++;
                                }
                                if (numeroAgregado == 2)
                                {
                                    break;
                                }
                            }
                            ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                        }
                    }

                    // si el siquiente no existe y ambos son diferentes
                    else
                    {
                        // se agregar las equivalencia a la lista de asigntaruas equivalentes
                        Entidades.MC.AsignaturasEquivalentesNota asignaturasEquivalentes = new Entidades.MC.AsignaturasEquivalentesNota();
                        asignaturasEquivalentes.asignaturasOrigen   = new List <Entidades.MDP.AsignaturaNota>();
                        asignaturasEquivalentes.asignaturasObjetivo = new List <Entidades.MDP.Asignatura>();

                        int numeroAgregado = 0;
                        foreach (Entidades.MDP.Asignatura asig in asignaturas)
                        {
                            if (asig.Codigo == equivalentes[cont].codigoAsignaturaOrigen)
                            {
                                Entidades.MDP.AsignaturaNota asignatura = new Entidades.MDP.AsignaturaNota();
                                asignatura.Codigo        = asig.Codigo;
                                asignatura.Creditos      = asig.Creditos;
                                asignatura.Nombre        = asig.Nombre;
                                asignatura.NumeroDecreto = asig.NumeroDecreto;
                                asignatura.Nota          = equivalentes[cont].nota;
                                asignaturasEquivalentes.asignaturasOrigen.Add(asignatura);
                                numeroAgregado++;
                            }
                            if (asig.Codigo == equivalentes[cont].codigoAsignaturaObjetivo)
                            {
                                asignaturasEquivalentes.asignaturasObjetivo.Add(asig);
                                numeroAgregado++;
                            }
                            if (numeroAgregado == 2)
                            {
                                break;
                            }
                        }
                        ListaAsignaturasEquivalentes.Add(asignaturasEquivalentes);
                    }
                }

                conexion.CommitTransaction();
                conexion.CerrarConexion();
                return(ListaAsignaturasEquivalentes);
            }
            catch (Exception e)
            {
                conexion.RollBack();
                conexion.CerrarConexion();
                return(null);
            }
        }