public void Unpark(Car parkedCar, Token token)
 {
     if(FindCar(token) == null)
         throw new Exception("Car is not parked");
     _parkedCarData.Remove(token);
     _parkedCarCount--;
     ParkingAvailabiltyStatus = ParkingAvailabiltyStatusEnum.Available;
 }
 public Token Park(Car car)
 {
     if (ParkingAvailabiltyStatus == ParkingAvailabiltyStatusEnum.Available)
     {
         Token newToken = new Token(car.CarNumber);
         this._parkedCarData.Add(newToken, car);
         _parkedCarCount++;
         if (_parkedCarCount == _parkingLotCapacity)
             ParkingAvailabiltyStatus = ParkingAvailabiltyStatusEnum.NotAvailable;
         return newToken;
     }
     throw new Exception("Parking is full ! Sorry !");
 }
 public Car FindCar(Token token)
 {
     return _parkedCarData.ContainsKey(token) ? _parkedCarData[token] : null;
 }