public ParkingLotController(IMemoryCache memoryCache, IParkingLotFactory parkingLotFactory, IVehicleFactory vehicleFactory) { _memoryCache = memoryCache; _parkingLotFactory = parkingLotFactory; _vehicleFactory = vehicleFactory; // Load up some test data using MemoryCache for demonstration _parkingLot = _memoryCache.GetOrCreate <IParkingLot>("ParkingLot", entry => { var parkingLot = _parkingLotFactory.Create(); parkingLot.ParkVehicle(_vehicleFactory.Create <CompactVehicle>()); parkingLot.ParkVehicle(_vehicleFactory.Create <TruckVehicle>()); return(parkingLot); }); }
/// <summary> /// Instantiates a new Parking lot Manager /// </summary> /// <param name="parkingLotFactory">Parking lot factory</param> public ParkingLotManager(IParkingLotFactory parkingLotFactory) { _parkingLotFactory = parkingLotFactory; }