@@ -25,20 +25,44 @@ public VehicleController(AppDbContext context)
2525 [ HttpGet ]
2626 public async Task < IActionResult > GetAllVehicle ( )
2727 {
28- var vehicles = await _context . Vehicle . ToListAsync ( ) ;
28+ var vehicles = await _context . Vehicle
29+ . Include ( v => v . VehicleImages )
30+ . ToListAsync ( ) ;
2931 // Console.WriteLine($"Found {vehicles.Count} vehicle.");
3032
3133 if ( vehicles == null || vehicles . Count == 0 )
3234 {
3335 return NotFound ( new { Message = "No vehicle found." } ) ;
3436 }
3537
38+ var vehicleDtos = vehicles . Select ( v => new
39+ {
40+ v . VehicleID ,
41+ v . VIN ,
42+ v . Model ,
43+ v . Make ,
44+ v . BodyType ,
45+ v . Year ,
46+ v . OriginalPrice ,
47+ v . Price ,
48+ v . Condition ,
49+ v . FuelType ,
50+ v . CO2Emissions ,
51+ v . MPG ,
52+ v . Mileage ,
53+ v . Color ,
54+ v . Feature ,
55+ v . Description ,
56+ v . IsAvailable ,
57+ ImageUrls = v . VehicleImages . Select ( vi => vi . Url ) . ToList ( ) // Get image URLs for each vehicle
58+ } ) . ToList ( ) ;
59+
3660 // foreach (var vehicle in vehicles)
3761 // {
3862 // Console.WriteLine($"VehicleID: {vehicle.VehicleID}, Make: {vehicle.Make}, Model: {vehicle.Model}, Price: {vehicle.Price}");
3963 // }
4064
41- return Ok ( vehicles ) ;
65+ return Ok ( vehicleDtos ) ;
4266 }
4367
4468 [ HttpGet ( "by-vins" ) ]
@@ -52,6 +76,7 @@ public async Task<IActionResult> GetVehiclesByVins([FromQuery] string vins)
5276 var vinList = vins . Split ( ',' ) . Select ( v => v . Trim ( ) ) . ToList ( ) ;
5377
5478 var vehicles = await _context . Vehicle
79+ . Include ( v => v . VehicleImages )
5580 . Where ( v => vinList . Contains ( v . VIN ) )
5681 . ToListAsync ( ) ;
5782
@@ -60,7 +85,30 @@ public async Task<IActionResult> GetVehiclesByVins([FromQuery] string vins)
6085 return NotFound ( new { Message = "No vehicles found with the provided VINs." } ) ;
6186 }
6287
63- return Ok ( vehicles ) ;
88+ var vehicleDtos = vehicles . Select ( v => new
89+ {
90+ v . VehicleID ,
91+ v . VIN ,
92+ v . Model ,
93+ v . Make ,
94+ v . BodyType ,
95+ v . Year ,
96+ v . OriginalPrice ,
97+ v . Price ,
98+ v . Condition ,
99+ v . FuelType ,
100+ v . CO2Emissions ,
101+ v . MPG ,
102+ v . Mileage ,
103+ v . Color ,
104+ v . Feature ,
105+ v . Description ,
106+ v . IsAvailable ,
107+ v . DealerID ,
108+ ImageUrls = v . VehicleImages . Select ( vi => vi . Url ) . ToList ( ) // Get image URLs for each vehicle
109+ } ) . ToList ( ) ;
110+
111+ return Ok ( vehicleDtos ) ;
64112 }
65113
66114 [ HttpGet ( "by-vin/{vin}" ) ]
@@ -72,6 +120,7 @@ public async Task<IActionResult> GetVehicleByVin(string vin)
72120 }
73121
74122 var vehicle = await _context . Vehicle
123+ . Include ( v => v . VehicleImages )
75124 . Where ( v => v . VIN == vin )
76125 . FirstOrDefaultAsync ( ) ;
77126
@@ -80,19 +129,68 @@ public async Task<IActionResult> GetVehicleByVin(string vin)
80129 return NotFound ( new { Message = "No vehicle found with the provided VIN." } ) ;
81130 }
82131
83- return Ok ( vehicle ) ;
132+ var vehicleDto = new
133+ {
134+ vehicle . VehicleID ,
135+ vehicle . VIN ,
136+ vehicle . Model ,
137+ vehicle . Make ,
138+ vehicle . BodyType ,
139+ vehicle . Year ,
140+ vehicle . OriginalPrice ,
141+ vehicle . Price ,
142+ vehicle . Condition ,
143+ vehicle . FuelType ,
144+ vehicle . CO2Emissions ,
145+ vehicle . MPG ,
146+ vehicle . Mileage ,
147+ vehicle . Color ,
148+ vehicle . Feature ,
149+ vehicle . Description ,
150+ vehicle . IsAvailable ,
151+ ImageUrls = vehicle . VehicleImages . Select ( vi => vi . Url ) . ToList ( ) // Get image URLs for the single vehicle
152+ } ;
153+
154+ return Ok ( vehicleDto ) ;
84155 }
85156
86157 // GET: api/vehicle/{id}
87158 [ HttpGet ( "{id:int}" ) ]
88- public IActionResult GetVehicleById ( int id )
159+ public async Task < IActionResult > GetVehicleById ( int id )
89160 {
90- var vehicle = _context . Vehicle . FirstOrDefault ( v => v . VehicleID == id ) ; // _context.Vehicle
161+ var vehicle = await _context . Vehicle
162+ . Include ( v => v . VehicleImages )
163+ . Where ( v => v . VehicleID == id )
164+ . FirstOrDefaultAsync ( ) ;
165+
91166 if ( vehicle == null )
92167 {
93168 return NotFound ( new { Message = "Vehicle not found." } ) ;
94169 }
95- return Ok ( vehicle ) ;
170+
171+ var vehicleDto = new
172+ {
173+ vehicle . VehicleID ,
174+ vehicle . VIN ,
175+ vehicle . Model ,
176+ vehicle . Make ,
177+ vehicle . BodyType ,
178+ vehicle . Year ,
179+ vehicle . OriginalPrice ,
180+ vehicle . Price ,
181+ vehicle . Condition ,
182+ vehicle . FuelType ,
183+ vehicle . CO2Emissions ,
184+ vehicle . MPG ,
185+ vehicle . Mileage ,
186+ vehicle . Color ,
187+ vehicle . Feature ,
188+ vehicle . Description ,
189+ vehicle . IsAvailable ,
190+ ImageUrls = vehicle . VehicleImages . Select ( vi => vi . Url ) . ToList ( ) // Get image URLs for the single vehicle
191+ } ;
192+
193+ return Ok ( vehicleDto ) ;
96194 }
97195
98196 // GET: api/vehicle/price/{vin}
0 commit comments