Example #1
0
        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));
        }
Example #2
0
        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));
        }