/*================================================================================ * GUARDAR CONDUCTORES *================================================================================*/ public static void GuardarConductores(IEnumerable <Conductor> lista) { // Si la lista está vacía, salimos. if (lista == null || lista.Count() == 0) { return; } using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { //string SQLInsertar = "INSERT INTO Conductores (Nombre, Apellidos, Indefinido, Telefono, Email, Acumuladas, Descansos, " + // "DescansosNoDisfrutados, PlusDistancia, Notas) " + // "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; //string SQLActualizar = "UPDATE Conductores SET Id=?, Nombre=?, Apellidos=?, Indefinido=?, " + // "Telefono=?, Email=?, Acumuladas=?, Descansos=?, DescansosNoDisfrutados=?, PlusDistancia=?, Notas=? WHERE Id=?"; string SQLInsertar = "InsertarConductor"; string SQLActualizar = "ActualizarConductor"; try { conexion.Open(); foreach (Conductor conductor in lista) { if (conductor.Nuevo) { // Si el conductor ya existe, saltarselo. if (ExisteConductor(conductor.Id)) { conductor.Id = 0; continue; } OleDbCommand comando = new OleDbCommand(SQLInsertar, conexion); comando.CommandType = System.Data.CommandType.StoredProcedure; Conductor.ParseToCommand(comando, conductor); comando.ExecuteNonQuery(); foreach (RegulacionConductor regulacion in conductor.ListaRegulaciones) { regulacion.IdConductor = conductor.Id; } conductor.Nuevo = false; conductor.Modificado = false; } else if (conductor.Modificado) { OleDbCommand comando = new OleDbCommand(SQLActualizar, conexion); comando.CommandType = System.Data.CommandType.StoredProcedure; //TODO: Eliminar tras probar. Conductor.ParseToCommand(comando, conductor); comando.ExecuteNonQuery(); conductor.Modificado = false; } BdRegulacionConductor.GuardarRegulaciones(conductor.ListaRegulaciones.Where(r => r.Nuevo || r.Modificado)); } } catch (Exception ex) { Utils.VerError("BdConductores.GuardarConductores", ex); } } }
/*================================================================================ * GET CONDUCTORES *================================================================================*/ public static List <Conductor> GetConductores() { // Creamos la lista y el comando que extrae los gráficos. List <Conductor> lista = new List <Conductor>(); using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { //string comandoSQL = "SELECT * FROM Conductores ORDER BY Id"; string comandoSQL = "GetConductores"; OleDbCommand Comando = new OleDbCommand(comandoSQL, conexion); Comando.CommandType = System.Data.CommandType.StoredProcedure; //TODO: Eliminar tras probar. OleDbDataReader lector = null; try { conexion.Open(); lector = Comando.ExecuteReader(); while (lector.Read()) { Conductor conductor = new Conductor(lector); conductor.ListaRegulaciones = new NotifyCollection <RegulacionConductor>(BdRegulacionConductor.GetRegulaciones(conductor.Id)); lista.Add(conductor); conductor.Nuevo = false; conductor.Modificado = false; } } catch (Exception ex) { Utils.VerError("BdConductores.GetConductores", ex); } finally { lector.Close(); } } return(lista); }
/*================================================================================ * GET CONDUCTOR *================================================================================*/ public static Conductor GetConductor(int idconductor) { Conductor conductor = null; using (OleDbConnection conexion = new OleDbConnection(App.Global.CadenaConexion)) { // Creamos el comando que extrae el conductor //string comandoSQL = "SELECT * FROM Conductores WHERE Id = ?"; string comandoSQL = "GetConductor"; OleDbCommand Comando = new OleDbCommand(comandoSQL, conexion); Comando.CommandType = System.Data.CommandType.StoredProcedure; Comando.Parameters.AddWithValue("@Id", idconductor); OleDbDataReader lector = null; try { conexion.Open(); lector = Comando.ExecuteReader(); if (lector.Read()) { conductor = new Conductor(lector); conductor.ListaRegulaciones = new NotifyCollection <RegulacionConductor>(BdRegulacionConductor.GetRegulaciones(conductor.Id)); } } catch (Exception ex) { Utils.VerError("BdConductores.GetConductor", ex); } finally { lector.Close(); } } return(conductor); }