public ICollection <Presupuesto> GetAll()
        {
            ICollection <Presupuesto> presupuestos = new List <Presupuesto>();

            using (SqlCommand sql = this.CreateCommand())
            {
                if (sql != null)
                {
                    sql.CommandText = "SELECT * FROM Presupuestos";
                    SqlDataReader reader = sql.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            IClienteRepository rc = new ClienteRepository(sqlCon, sqlTran);
                            Console.WriteLine("1");
                            Console.WriteLine("reader.toString():" + reader.ToString());
                            Cliente c = rc.GetById(reader.GetInt32(2));
                            Console.WriteLine("2");
                            VehiculoRepository rv = new VehiculoRepository(sqlCon, sqlTran);
                            Console.WriteLine("3");
                            Vehiculo v = rv.GetById(reader.GetInt32(3));

                            Console.WriteLine("4");

                            Presupuesto p = new Presupuesto(reader.GetInt32(0), reader.GetString(1), reader.GetDouble(2), c, v);
                            Console.WriteLine("5");
                            Console.WriteLine("presupuestos a añadir a la loista en GetAll() toString:" + p.ToString());
                            presupuestos.Add(p);
                            Console.WriteLine("6");
                        }
                    }
                    else
                    {
                        Console.WriteLine("No hay datos");
                    }
                    reader.Close();
                }
            }
            return(presupuestos);
        }
        public Presupuesto GetById(int id)
        {
            Presupuesto p = null;

            using (SqlCommand sql = this.CreateCommand())
            {
                if (sql != null)
                {
                    sql.CommandText = "SELECT * FROM Presupuestos WHERE Id=" + id;
                    SqlDataReader reader = sql.ExecuteReader();

                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            /*
                             * //AdoUnitOfWork
                             * //deberia buscar el cliente y el vehiculo
                             * Contracts.IClienteRepository repositorioCliente = new DataLayer.ClienteRepository();
                             * Services.ClienteService servicioCliente = new Services.ClienteService(repositorioCliente);
                             * Contracts.IVehiculoRepository repositorioVehiculo = new DataLayer.VehiculoRepository();
                             * Services.VehiculoService servicioVehiculo = new Services.VehiculoService(repositorioVehiculo);
                             *
                             * DomainModel.Cliente miCliente = servicioCliente.buscarCliente((int)rdr[3]);
                             * DomainModel.Vehiculo miVehiculo = servicioVehiculo.buscarVehiculo((int)rdr[4]);
                             *
                             *
                             * IClienteRepository a=new ClienteRepository();
                             */
                            //de antes  p = new Presupuesto(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetInt32(3));


                            //p=new Presupuesto(reader.GetInt32(0), reader.GetString(1),reader.GetDecimal(2), miCliente, miVehiculo);

                            Vehiculo v       = new Vehiculo(reader.GetInt32(3), "", "", 0);
                            Cliente  cl      = new Cliente(reader.GetInt32(2), "", "", "", false);
                            double   importe = reader.GetDouble(2);
                            string   estado  = reader.GetString(1);
                            p = new Presupuesto(id, estado, importe, cl, v);
                        }

                        ClienteRepository rc = new ClienteRepository(sqlCon, sqlTran);
                        p.Cliente = rc.GetById(p.Cliente.Id);
                        VehiculoRepository rv = new VehiculoRepository(sqlCon, sqlTran);
                        p.Vehiculo = rv.GetById(p.Vehiculo.Id);
                    }
                    else
                    {
                        Console.WriteLine("No hay datos");
                    }
                    reader.Close();
                }
            }
            return(p);

            /*
             * DomainModel.Presupuesto nuevo = null;
             * SqlDataReader rdr = null;
             * try
             * {
             *
             *  if (id != null)
             *  {
             *      crearConexion();
             *      SqlCommand cmd = new SqlCommand();
             *      cmd.Connection = conn;
             *      cmd.CommandText = "select * from dbo.Presupuestoes where id=@id";
             *      cmd.Parameters.AddWithValue(@"id", id);
             *      rdr = cmd.ExecuteReader();
             *
             *      while (rdr.Read())
             *      {
             *          //deberia buscar el cliente y el vehiculo
             *          Contracts.IClienteRepository repositorioCliente = new DataLayer.ClienteRepository();
             *          Services.ClienteService servicioCliente = new Services.ClienteService(repositorioCliente);
             *          Contracts.IVehiculoRepository repositorioVehiculo = new DataLayer.VehiculoRepository();
             *          Services.VehiculoService servicioVehiculo = new Services.VehiculoService(repositorioVehiculo);
             *
             *          DomainModel.Cliente miCliente = servicioCliente.buscarCliente((int)rdr[3]);
             *          DomainModel.Vehiculo miVehiculo = servicioVehiculo.buscarVehiculo((int)rdr[4]);
             *
             *          nuevo = new DomainModel.Presupuesto((int)rdr[0], (string)rdr[1], (decimal)rdr[2], miCliente, miVehiculo);
             *      }
             *      cerrarConexion();
             *  }
             * }
             * catch (Exception ex)
             * {
             *  Console.WriteLine("Error: " + ex);
             * }
             * finally
             * {
             *  // close the reader
             *  if (rdr != null)
             *  {
             *      rdr.Close();
             *  }
             *
             *  cerrarConexion();
             * }
             * return nuevo;*/
        }