public Program() { ICommand _command = new Command(); ICheckCommand _checkCommand = new CheckCommand(_command); ISlot _slot = new Slot(); IParkingLotRepository _parkingRepository = new ParkingLotRepository(); ICheckParkingLotCreated checkParkingLotCreated = new CheckParkingLotCreated(_parkingRepository); ICommandExecutorSelector createParkingLot = new CreateParkingLot(_checkCommand, _slot, checkParkingLotCreated, _parkingRepository); IValidateVeicleDetails _validateVeicleDetails = new ValidateVeicleDetails(); IParkingVehicle _parkingVehicle = new ParkingVehicle(); IParkSuccessMessage _parkSuccessMessage = new ParkSuccessMessage(); ICommandExecutorSelector park = new Park(_checkCommand, _validateVeicleDetails, _parkingVehicle, _parkingRepository, _parkSuccessMessage); ISlotToEmpty _slotToEmpty = new SlotToEmpty(); IMaxSlotIndex _maxSlotIndex = new MaxSlotIndex(); IValidateSlotNumberToEmpty _validateSlotNumberToEmpty = new ValidateSlotNumberToEmpty(_parkingRepository, _maxSlotIndex); ILeaveSuccessMessage _leaveSuccessMessage = new LeaveSuccessMessage(); ICommandExecutorSelector leave = new Leave(_checkCommand, _slotToEmpty, _validateSlotNumberToEmpty, _parkingRepository, _leaveSuccessMessage); IStatusOutput _statusOutput = new StatusOutput(); ICommandExecutorSelector status = new Status(_parkingRepository, _statusOutput); IVehicleColor _vehicleColor = new VehicleColor(); IVehicleByColor _vehicleByColor = new VehicleByColor(); IVehicleByColorSuccessMessage _vehicleByColorSuccessMessage = new VehicleByColorSuccessMessage(); ICommandExecutorSelector regNoByColor = new RegistrationNumbersForCarsWithColour(_checkCommand, _vehicleColor, _parkingRepository, _vehicleByColor, _vehicleByColorSuccessMessage); ISlotByColor _slotByColor = new SlotByColor(); ISlotByColorMessage _slotByColorMessage = new SlotByColorMessage(); ICommandExecutorSelector slotNoByColor = new SlotNumbersForCarsWithColour(_checkCommand, _vehicleColor, _parkingRepository, _slotByColor, _slotByColorMessage); IVehicleRegistrationNumber _vehicleRegistrationNumber = new VehicleRegistrationNumber(); ISlotByRegistrationNumber _slotByRegistrationNumber = new SlotByRegistrationNumber(); ICommandExecutorSelector slotByRegistration = new SlotNumberForRegistrationNumber(_checkCommand, _vehicleRegistrationNumber, _parkingRepository, _slotByRegistrationNumber); ICommandExecutorSelector[] _selectors = { createParkingLot, park, leave, status, regNoByColor, slotNoByColor, slotByRegistration }; _provider = new CommandExecutorProvider(_selectors); }
public override int GetHashCode() { unchecked { var hashCode = BenchTestCarriedOutAnalogue.GetHashCode(); hashCode = (hashCode * 397) ^ CalibrationCertificateCompleted.GetHashCode(); hashCode = (hashCode * 397) ^ ClockTestCompleted.GetHashCode(); hashCode = (hashCode * 397) ^ (Comments != null ? Comments.GetHashCode() : 0); hashCode = (hashCode * 397) ^ DateOfAudit.GetHashCode(); hashCode = (hashCode * 397) ^ DistanceCheckCarriedOut.GetHashCode(); hashCode = (hashCode * 397) ^ EventsFaultsReadCleared.GetHashCode(); hashCode = (hashCode * 397) ^ (FortyKmTest != null ? FortyKmTest.GetHashCode() : 0); hashCode = (hashCode * 397) ^ FunctionalBenchTestDigital.GetHashCode(); hashCode = (hashCode * 397) ^ KFactor.GetHashCode(); hashCode = (hashCode * 397) ^ LFactor.GetHashCode(); hashCode = (hashCode * 397) ^ Passed.GetHashCode(); hashCode = (hashCode * 397) ^ (QCManagerName != null ? QCManagerName.GetHashCode() : 0); hashCode = (hashCode * 397) ^ ReferenceCableCheckCompleted.GetHashCode(); hashCode = (hashCode * 397) ^ (SixtyKmTest != null ? SixtyKmTest.GetHashCode() : 0); hashCode = (hashCode * 397) ^ SpeedForSpeedCheckCompleted.GetHashCode(); hashCode = (hashCode * 397) ^ SystemSealedInAccordance.GetHashCode(); hashCode = (hashCode * 397) ^ (TachoCentreCity != null ? TachoCentreCity.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachoCentreLine1 != null ? TachoCentreLine1.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachoCentreLine2 != null ? TachoCentreLine2.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachoCentreLine3 != null ? TachoCentreLine3.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachoCentrePostCode != null ? TachoCentrePostCode.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachographMake != null ? TachographMake.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachographModel != null ? TachographModel.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachographSerialNumber != null ? TachographSerialNumber.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (TachoManagerName != null ? TachoManagerName.GetHashCode() : 0); hashCode = (hashCode * 397) ^ TechnicalDataPrintoutsCreated.GetHashCode(); hashCode = (hashCode * 397) ^ (TechnicianName != null ? TechnicianName.GetHashCode() : 0); hashCode = (hashCode * 397) ^ TestChartsCompleted.GetHashCode(); hashCode = (hashCode * 397) ^ ThreeBasicChecksCompleted.GetHashCode(); hashCode = (hashCode * 397) ^ (TypeOfTachographCheck != null ? TypeOfTachographCheck.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (VehicleIdentificationNumber != null ? VehicleIdentificationNumber.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (VehicleMake != null ? VehicleMake.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (VehicleRegistrationNumber != null ? VehicleRegistrationNumber.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (VehicleType != null ? VehicleType.GetHashCode() : 0); hashCode = (hashCode * 397) ^ WFactor.GetHashCode(); return(hashCode); } }