public override object Park(Car car) { var parkingLot = ParkingLots.Where(lot => !lot.IsFull()).OrderByDescending(lot => lot.RemainSpaceCount()).FirstOrDefault(); if (parkingLot == null) { throw new NoSpaceException("no space"); } return(parkingLot.Park(car)); }
public override string TryPark(Car car, out Ticket ticket) { var currentLot = ParkingLots.Where(x => x.IsAvailabe).OrderBy(x => x.AvailablePositions / x.Capacity).LastOrDefault(); return(TryParkToSpecificLot(car, currentLot, out ticket)); }