public Car(double fillLevel) { fuelTank = new FuelTank(fillLevel); engine = new Engine(fuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank); engine.Stop(); }
public Car() { fuelTank = new FuelTank(20); engine = new Engine(fuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank); engine.Stop(); }
private void BuildCar(double fuelLevel = 20, int maxAcceleration = 10) { if (maxAcceleration > 20) { maxAcceleration = 20; } else if (maxAcceleration < 5) { maxAcceleration = 5; } fuelTank = new FuelTank(); fuelTankDisplay = new FuelTankDisplay(fuelTank); engine = new Engine(fuelTank); if (fuelTank is Subject && fuelTankDisplay is Observer) { ((Subject)fuelTank).Attach((Observer)fuelTankDisplay); } if (fuelTank is Subject && engine is Observer) { ((Subject)fuelTank).Attach((Observer)engine); } fuelTank.Refuel(fuelLevel); drivingProcessor = new DrivingProcessor(maxAcceleration); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); if (drivingProcessor is Subject && drivingInformationDisplay is Observer) { ((Subject)drivingProcessor).Attach((Observer)drivingInformationDisplay); } }
public Car(double fuelLevel) { fuelTank = new FuelTank(fuelLevel); fuelTankDisplay = new FuelTankDisplay(fuelTank); engine = new Engine(fuelTank); drivingProcessor = new DrivingProcessor(); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); }
public Car(double fuelLevel, int maxAcceleration) // car #2 { fuelTank = new FuelTank(fuelLevel); fuelTankDisplay = new FuelTankDisplay(fuelTank); drivingProcessor = new DrivingProcessor(maxAcceleration); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); engine = new Engine(fuelTank); }
public IOnBoardComputerDisplay onBoardComputerDisplay; // car #3 public Car(double fuelLevel = 20, int maxAcceleration = 10) // car #2 { fuelTank = new FuelTank(fuelLevel); engine = new Engine(fuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank); drivingProcessor = new DrivingProcessor(engine, maxAcceleration, fuelTank); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); onBoardComputer = new OnBoardComputer(drivingProcessor); onBoardComputerDisplay = new OnBoardComputerDisplay(onBoardComputer); }
public Car(double fuelLevel) { fuelTank = new FuelTank(fuelLevel); engine = new Engine(fuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank); drivingProcessor = new DrivingProcessor(); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); onBoardComputer = new OnBoardComputer(drivingProcessor, fuelTank); onBoardComputerDisplay = new OnBoardComputerDisplay(onBoardComputer); }
public Car(double fuelLevel, int maxAcceleration) { fuelLevel = Math.Max(Math.Min(fuelLevel, 60), 0); fuelTank = new FuelTank(fuelLevel); engine = new Engine(fuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank); drivingProcessor = new DrivingProcessor(engine, maxAcceleration); onBoardComputer = new OnBoardComputer(drivingProcessor, fuelTank); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); onBoardComputerDisplay = new OnBoardComputerDisplay(onBoardComputer); }
public Car(double fuelLevel, int maxAcceleration) // car #2 { Console.WriteLine($"New Car. fuelLevel: {fuelLevel}, maxAcceleration: {maxAcceleration}"); fuelTank = new FuelTank(fuelLevel); drivingProcessor = new DrivingProcessor(); engine = new Engine(fuelTank, drivingProcessor); fuelTankDisplay = new FuelTankDisplay(fuelTank); drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor); _maxAcceleration = Math.Clamp(maxAcceleration, MIN_ACCELERATION, MAX_ACCELERATION); onBoardComputer = new OnBoardComputer(drivingProcessor, fuelTank); onBoardComputerDisplay = new OnBoardComputerDisplay(onBoardComputer); }
public Car(double fuelLevel = 20) { engine = new Engine(); fuelTank = new FuelTank() { FillLevel = fuelLevel, IsOnReserve = fuelLevel < 5, IsComplete = fuelLevel == 60 }; fuelTankDisplay = new FuelTankDisplay() { FillLevel = fuelTank.FillLevel, IsOnReserve = fuelTank.IsOnReserve, IsComplete = fuelTank.IsComplete }; }
public OnBoardComputer(IDrivingProcessor drivingProcessor, IFuelTank fuelTank) { _fuelTank = fuelTank; _drivingProcessor = drivingProcessor; ((DrivingProcessor)_drivingProcessor).SpeedChanged += TripAverageSpeedSetUp; ((DrivingProcessor)_drivingProcessor).SpeedChanged += TripDrivenDistanceUp; TripDrivingTime = 0; TripRealTime = 0; TripDrivenDistanceDouble = 0; TotalDrivenDistanceDouble = 0; consumptionsOnLast100Second = new Queue <double>(100); Enumerable.Range(0, 99).ToList().ForEach(c => consumptionsOnLast100Second.Enqueue(4.8)); }
public DrivingProcessor(IEngine engine, int maxAcceleration, IFuelTank fuelTank) { if (maxAcceleration < 5) { maxAcceleration = 5; } if (maxAcceleration > 20) { maxAcceleration = 20; } _engine = engine; _maxAcceleration = maxAcceleration; FuelTank = fuelTank; }
public Car(double fuelLevel) { fuelTank = new FuelTank(); engine = new Engine(fuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank); if (fuelLevel >= 60) { this.fuelTank.Refuel(60); } else { fuelTank.Refuel(fuelLevel); } engine.Stop(); }
public Car(double fuelLevel = 20) { fuelTank = new FuelTank(); fuelTankDisplay = new FuelTankDisplay(fuelTank); engine = new Engine(fuelTank); if (fuelTank is Subject && fuelTankDisplay is Observer) { ((Subject)fuelTank).Attach((Observer)fuelTankDisplay); } if (fuelTank is Subject && engine is Observer) { ((Subject)fuelTank).Attach((Observer)engine); } fuelTank.Refuel(fuelLevel); }
public Car(double fuelLevel, int maxAcceleration) { engine = new Engine(); fuelTankDisplay = new FuelTankDisplay(); fuelTank = new FuelTank(fuelLevel); drivingInformationDisplay = new DrivingInformationDisplay(); drivingProcessor = new DrivingProcessor(maxAcceleration); onBoardComputer = new OnBoardComputer(); onBoardComputerDisplay = new OnBoardComputerDisplay(); ((Engine)engine).OnEngineConsume += ((FuelTank)fuelTank).HandleConsumeEvent; ((OnBoardComputer)onBoardComputer).OnBoardComputerData += ((OnBoardComputerDisplay)onBoardComputerDisplay).ComputerDataHandler; ((FuelTank)fuelTank).OnFuelTankChange += ((FuelTankDisplay)fuelTankDisplay).FillLevelStateHandler; ((FuelTank)fuelTank).OnFuelTankChange += ((Engine)engine).FuelTankHandler; ((FuelTank)fuelTank).OnFuelTankChange += ((OnBoardComputer)onBoardComputer).FuelTankHandler; ((DrivingProcessor)drivingProcessor).OnDrivingProcessorChange += ((OnBoardComputer)onBoardComputer).DrivingProcessorHandler; ((DrivingProcessor)drivingProcessor).OnDrivingProcessorChange += ((DrivingInformationDisplay)drivingInformationDisplay).ActualSpeedHandler; ((DrivingProcessor)drivingProcessor).OnDrivingProcessorChange += ((Engine)engine).DrivingProcessorHandler; ((OnBoardComputerDisplay)onBoardComputerDisplay).OnTripReset += ((OnBoardComputer)onBoardComputer).TripResetHandler; ((OnBoardComputerDisplay)onBoardComputerDisplay).OnTotalReset += ((OnBoardComputer)onBoardComputer).TotalResetHandler; ((FuelTank)fuelTank).SendState(); }
public Engine(IFuelTank fuelTank) => this.fuelTank = fuelTank;
public FuelTankDisplay(IFuelTank tank) { fuelTank = tank; }
public Car(double fuelLevel = 20) { fuelTank = new FuelTank(fuelLevel); engine = new Engine(fuelTank as FuelTank); fuelTankDisplay = new FuelTankDisplay(fuelTank as FuelTank); }
public Car() { engine = new Engine(); fuelTank = new FuelTank(); fuelTankDisplay = new FuelTankDisplay(); }
public Engine(IFuelTank fuelTank) { _fuelTank = fuelTank; ConsumptionList = new List <double>(); }
public FuelTankDisplay(IFuelTank fuelTank) { _fuelTank = fuelTank; }
public OnBoardComputer(IDrivingProcessor drivingProcessor, IFuelTank fuelTank) { _drivingProcessor = drivingProcessor; _fuelTank = fuelTank; Enumerable.Range(0, 100).ToList().ForEach(c => _consumptionInLast100Sec.Add(0.048)); }
public Engine(IFuelTank fuelTank) { _fuelTank = fuelTank; }
public Engine(FuelTank fuelTank) { this.fuelTank = fuelTank; }
public Engine(IFuelTank fuelTank) { this.fuelTank = fuelTank; IsRunning = false; }
public OnBoardComputer(IDrivingProcessor drivingProcessor, IFuelTank fuelTank) { _drivingProcessor = drivingProcessor; _fuelTank = fuelTank; _consumptionForLast100Seconds = SetupDefaultConsumption(); }
public Engine(IFuelTank fuelTank, IDrivingProcessor drivingProcessor) { _isRunning = false; _fuelTank = fuelTank; _drivingProcessor = drivingProcessor; }
public FuelTankDisplay(IFuelTank fuelTank) { this.fuelTank = fuelTank; }
public Car(IFuelTank fuelTank) { _fuelTank = fuelTank; }
public Engine(IFuelTank tank) { fuelTank = tank; }