Beispiel #1
0
        /*================================================================================
         * GET ITINERARIOS
         *================================================================================*/
        public static ObservableCollection <Itinerario> GetItinerarios(long IdLinea)
        {
            // Creamos la lista.
            ObservableCollection <Itinerario> lista = new ObservableCollection <Itinerario>();

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexionLineas))
            {
                string comandoSQL = "SELECT * FROM Itinerarios WHERE IdLinea=? ORDER BY Nombre";

                OleDbCommand Comando = new OleDbCommand(comandoSQL, conexion);
                Comando.Parameters.AddWithValue("idlinea", IdLinea);
                OleDbDataReader lector = null;

                try {
                    conexion.Open();
                    // Ejecutamos el comando y extraemos los gráficos del lector a la lista.
                    lector = Comando.ExecuteReader();
                    while (lector.Read())
                    {
                        Itinerario itinerario = new Itinerario(lector);
                        itinerario.ListaParadas = BdParadas.GetParadas(itinerario.Id);
                        lista.Add(itinerario);
                        itinerario.Nuevo      = false;
                        itinerario.Modificado = false;
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdItinerarios.GetItinerarios", ex);
                } finally {
                    lector.Close();
                }
            }
            return(lista);
        }
Beispiel #2
0
        /*================================================================================
         * GET ITINERARIO BY NOMBRE
         *================================================================================*/
        public static Itinerario GetItinerarioByNombre(decimal nombre)
        {
            Itinerario itinerario = null;

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexionLineas))
            {
                // Creamos el comando que extrae el itinerario
                string comandoSQL = "SELECT * FROM Itinerarios WHERE Nombre = ?";

                OleDbCommand Comando = new OleDbCommand(comandoSQL, conexion);
                Comando.Parameters.AddWithValue("nombre", nombre.ToString());
                OleDbDataReader lector = null;

                try {
                    conexion.Open();

                    lector = Comando.ExecuteReader();

                    if (lector.Read())
                    {
                        itinerario = new Itinerario(lector);
                        itinerario.ListaParadas = BdParadas.GetParadas(itinerario.Id);
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdItinerarios.GetItinerarioByNombre", ex);
                } finally {
                    lector.Close();
                }
            }

            return(itinerario);
        }
Beispiel #3
0
        /*================================================================================
         * GUARDAR ITINERARIOS
         *================================================================================*/
        public static void GuardarItinerarios(IEnumerable <Itinerario> lista)
        {
            // Si la lista está vacía, salimos.
            if (lista == null || lista.Count() == 0)
            {
                return;
            }

            using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexionLineas))
            {
                string SQLInsertar = "INSERT INTO Itinerarios (IdLinea, Nombre, Descripcion, TiempoReal, TiempoPago) " +
                                     "VALUES (?, ?, ?, ?, ?);";

                string SQLActualizar = "UPDATE Itinerarios SET IdLinea=?, Nombre=?, Descripcion=?, TiempoReal=?, TiempoPago=? WHERE Id=?;";
                string SQLGetID      = "SELECT @@IDENTITY;";

                try {
                    conexion.Open();

                    foreach (Itinerario itinerario in lista)
                    {
                        if (itinerario.Nuevo)
                        {
                            OleDbCommand comando = new OleDbCommand(SQLInsertar, conexion);
                            Itinerario.ParseToCommand(comando, itinerario);
                            comando.ExecuteNonQuery();
                            comando.CommandText = SQLGetID;
                            int iditinerario = (int)comando.ExecuteScalar();
                            foreach (Parada parada in itinerario.ListaParadas)
                            {
                                parada.IdItinerario = iditinerario;
                            }
                            itinerario.Id         = iditinerario;
                            itinerario.Nuevo      = false;
                            itinerario.Modificado = false;
                        }
                        else if (itinerario.Modificado)
                        {
                            OleDbCommand comando = new OleDbCommand(SQLActualizar, conexion);
                            Itinerario.ParseToCommand(comando, itinerario);
                            comando.ExecuteNonQuery();
                            itinerario.Modificado = false;
                        }
                        BdParadas.GuardarParadas(itinerario.ListaParadas.Where(item => item.Nuevo || item.Modificado));
                        BdParadas.BorrarParadas(itinerario.ParadasBorradas);
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdItinerarios.GuardarItinerarios", ex);
                }
            }
        }