示例#1
0
        /*================================================================================
         * 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);
                }
            }
        }
示例#2
0
        /*================================================================================
         * 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);
        }
示例#3
0
        /*================================================================================
         * 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);
        }