internal IEvent Refuel(double petrolAmount, double petrolLoss, DateTime currentDateTime) { double leakage = CalculateLeakage(petrolAmount); CurrentVolume += (petrolAmount - leakage); RefuelOrder = null; return(new TankRefueled(Id, currentDateTime, CurrentVolume, petrolAmount - leakage, leakage, petrolLoss)); }
public Tank(Guid id, double maximumVolume, double currentVolume, decimal petrolTemperature, decimal tankHigh, RefuelOrder refuelOrder) { Id = id; MaximumVolume = maximumVolume; CurrentVolume = currentVolume; PetrolTemperature = petrolTemperature; TankHigh = tankHigh; RefuelOrder = refuelOrder; }
private void OrderSupplyIfNeeded(DateTime DateTime) { if (CurrentVolume <= minVolume) { if (RefuelOrder == null) { RefuelOrder = new RefuelOrder(Id, DateTime, MaximumVolume - CurrentVolume); } } }