private void CheckForParkingAvailability(ParkingLot parkingLot) { List <ParkingLevel> lstParkingLevel = parkingLot.ParkingLevels; int MotorcycleSpotOnlyLastRowNumber = ParkingLotConstants.MotorcycleSpotOnlyRowCount; int MixedSpotMotorcycleSpotLastSpotNumber = ParkingLotConstants.MixedSpotsMotorcycleSpotCount; for (int i = 0; i <= lstParkingLevel.Count - 1; i++) { ParkingLevel objParkingLevel = lstParkingLevel[i]; List <ParkingRow> lstParkingRow = objParkingLevel.ParkingRows; for (int j = 0; j <= lstParkingRow.Count - 1; j++) { ParkingRow objParkingRow = lstParkingRow[j]; List <ParkingSpot> lstParkingSpot = objParkingRow.ParkingSpots; for (int k = 0; k <= lstParkingSpot.Count - 1; k++) { ParkingSpot objParkingSpot = lstParkingSpot[k]; bool isFilled = objParkingSpot.IsFilled; if (j <= (MotorcycleSpotOnlyLastRowNumber - 1)) { if (isFilled == false) { IsParkingAvailable = true; VehicleParkingInformation = VehicleUtility.GetVehicleParkingInformation(objParkingSpot.LevelNumber, objParkingSpot.RowNumber, new List <int> { objParkingSpot.SpotNumber }, objParkingSpot.SpotType); break; } } else if (j > (MotorcycleSpotOnlyLastRowNumber - 1)) { if (k <= (MixedSpotMotorcycleSpotLastSpotNumber - 1)) { if (isFilled == false) { IsParkingAvailable = true; VehicleParkingInformation = VehicleUtility.GetVehicleParkingInformation(objParkingSpot.LevelNumber, objParkingSpot.RowNumber, new List <int> { objParkingSpot.SpotNumber }, objParkingSpot.SpotType); break; } } else { break; } } } if (IsParkingAvailable == true) { break; } } } }
private void CheckForParkingAvailability(ParkingLot parkingLot) { List <ParkingLevel> lstParkingLevel = parkingLot.ParkingLevels; int MotorcycleSpotOnlyLastRowNumber = ParkingLotConstants.MotorcycleSpotOnlyRowCount; int MixedSpotCompactSpotLastSpotNumber = ParkingLotConstants.MixedSpotsMotorcycleSpotCount + ParkingLotConstants.MixedSpotsCompactSpotCount; for (int i = 0; i <= lstParkingLevel.Count; i++) { ParkingLevel objParkingLevel = lstParkingLevel[i]; List <ParkingRow> lstParkingRow = objParkingLevel.ParkingRows; for (int j = MotorcycleSpotOnlyLastRowNumber; j <= lstParkingRow.Count - 1; j++) { ParkingRow objParkingRow = lstParkingRow[j]; List <ParkingSpot> lstParkingSpot = objParkingRow.ParkingSpots; int intConsecutiveFiveSpotsCount = 0; List <int> lstConsecutiveFiveSpots = new List <int>(); for (int k = MixedSpotCompactSpotLastSpotNumber; k <= lstParkingSpot.Count - 1; k++) { ParkingSpot objParkingSpot = lstParkingSpot[k]; bool isFilled = objParkingSpot.IsFilled; if (isFilled == false) { intConsecutiveFiveSpotsCount++; lstConsecutiveFiveSpots.Add(objParkingSpot.SpotNumber); } else if (isFilled == true) { intConsecutiveFiveSpotsCount = 0; lstConsecutiveFiveSpots.Clear(); } if (intConsecutiveFiveSpotsCount == 5) { IsParkingAvailable = true; VehicleParkingInformation = VehicleUtility.GetVehicleParkingInformation(objParkingSpot.LevelNumber, objParkingSpot.RowNumber, lstConsecutiveFiveSpots, objParkingSpot.SpotType); break; } } if (IsParkingAvailable == true) { break; } } if (IsParkingAvailable == true) { break; } } }