private void ParkOnMultipleSpots(ParkedVehicle vehicle, int spotsRequired) { int startOfSpotSequence; if (ParkingSpotContainer.FindConsecutiveSpots(spotsRequired, out startOfSpotSequence)) { var spots = ParkingSpotContainer.ParkOnMultipleSpots(startOfSpotSequence, spotsRequired, vehicle); var n = 0; for (var i = startOfSpotSequence; i < startOfSpotSequence + spotsRequired; i++) { parkSpots[i] = spots[n]; n++; } } }
private async Task ParkVehicleInBackend(ParkSpot[] parkSpots, ParkedVehicle vehicle) { var vehicleType = await _context.VehicleTypes.Where(v => v.Id == vehicle.VehicleTypeId).FirstOrDefaultAsync(); int numberRequired = GetRequiredNumberOfSpots(vehicleType); int startOfSpotSequence; if (vehicleType.Name == "Motorcycle") { { var spot = ParkingSpotContainer.GetAvailableSpot(parkSpots, true); if (spot != null) { spot.Park(vehicle); spot.VehicleCount++; spot.HasMotorcycles = true; } } } else if (vehicleType.Name != "Motorcycle" && ParkingSpotContainer.FindConsecutiveSpots(numberRequired, out startOfSpotSequence)) { ParkingSpotContainer.ParkOnMultipleSpots(startOfSpotSequence, numberRequired, vehicle); } }