Пример #1
0
        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++;
                }
            }
        }
Пример #2
0
        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);
            }
        }