예제 #1
0
        /*================================================================================
         * GET LÍNEAS
         *================================================================================*/
        public static ObservableCollection <Linea> GetLineas()
        {
            // Creamos la lista y el comando que extrae las líneas.
            ObservableCollection <Linea> lista = new ObservableCollection <Linea>();

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

                OleDbCommand    Comando = new OleDbCommand(comandoSQL, conexion);
                OleDbDataReader lector  = null;

                try {
                    conexion.Open();

                    lector = Comando.ExecuteReader();

                    while (lector.Read())
                    {
                        Linea linea = new Linea(lector);
                        linea.ListaItinerarios = BdItinerarios.GetItinerarios(linea.Id);
                        lista.Add(linea);
                        linea.Nuevo      = false;
                        linea.Modificado = false;
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdLineas.GetLineas", ex);
                } finally {
                    lector.Close();
                }
            }
            return(lista);
        }
예제 #2
0
        /*================================================================================
         * GUARDAR LÍNEAS
         *================================================================================*/
        public static void GuardarLineas(IEnumerable <Linea> 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 Lineas (Nombre, Descripcion) VALUES (?, ?)";

                string SQLActualizar = "UPDATE Lineas SET Nombre=?, Descripcion=? WHERE Id=?";

                string SQLGetID = "SELECT @@IDENTITY;";

                try {
                    conexion.Open();

                    foreach (Linea linea in lista)
                    {
                        if (linea.Nuevo)
                        {
                            OleDbCommand comando = new OleDbCommand(SQLInsertar, conexion);
                            Linea.ParseToCommand(comando, linea);
                            comando.ExecuteNonQuery();
                            comando.CommandText = SQLGetID;
                            int idlinea = (int)comando.ExecuteScalar();
                            foreach (Itinerario itinerario in linea.ListaItinerarios)
                            {
                                itinerario.IdLinea = idlinea;
                            }
                            linea.Nuevo      = false;
                            linea.Modificado = false;
                        }
                        else if (linea.Modificado)
                        {
                            OleDbCommand comando = new OleDbCommand(SQLActualizar, conexion);
                            Linea.ParseToCommand(comando, linea);
                            comando.ExecuteNonQuery();
                            linea.Modificado = false;
                        }
                    }
                    foreach (Linea linea in lista)
                    {
                        BdItinerarios.GuardarItinerarios(linea.ListaItinerarios.Where(item => item.Nuevo || item.Modificado));
                        BdItinerarios.BorrarItinerarios(linea.ItinerariosBorrados);
                    }
                } catch (Exception ex) {
                    Utils.VerError("BdLineas.GuardarLineas", ex);
                }
            }
        }