public IEnumerable <CarModel> GetAvailableCars()
 {
     // select all cars that are not in the purchased table
     return(from c in cars
            where !(from p in purchases
                    select p.VehicleId)
            .Contains(c.Id)
            select CarModel.FromCar(c));
 }
 public IEnumerable <CarModel> GetAllCars()
 {
     return(from c in cars
            join b in bodies on c.Body.BodyId equals b.BodyId
            join i in interiors on c.Interior.InteriorId equals i.InteriorId
            join col in colors on c.CarColor.ColorId equals col.ColorId
            join coli in colors on c.InteriorColor.ColorId equals coli.ColorId
            join t in transmissions on c.Transmission.TransmissionId equals t.TransmissionId
            join mo in models on c.MakeModel.ModelId equals mo.ModelId
            join ma in makes on mo.Make.MakeId equals ma.MakeId
            select CarModel.FromCar(c));
 }
 public CarModel GetCarById(int id)
 {
     return((
                from c in cars
                where c.Id == id
                join b in bodies on c.Body.BodyId equals b.BodyId
                join i in interiors on c.Interior.InteriorId equals i.InteriorId
                join col in colors on c.CarColor.ColorId equals col.ColorId
                join coli in colors on c.InteriorColor.ColorId equals coli.ColorId
                join t in transmissions on c.Transmission.TransmissionId equals t.TransmissionId
                join mo in models on c.MakeModel.ModelId equals mo.ModelId
                join ma in makes on mo.Make.MakeId equals ma.MakeId
                select CarModel.FromCar(c)
                ).FirstOrDefault());
 }