/*================================================================================ * 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); }
/*================================================================================ * 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); }
/*================================================================================ * 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); } } }