public void Record(PhoneCall phoneCall, PhoneCallCosting phoneCallCosting, IClock clock) { var numberOfMinutesCoveredByAllowance = new Minutes(); if (_freeCallAllowance != null) numberOfMinutesCoveredByAllowance = _freeCallAllowance.MinutesWhichCanCover(phoneCall, clock); var numberOfMinutesToChargeFor = phoneCall.Minutes.Subtract(numberOfMinutesCoveredByAllowance); var costOfCall = phoneCallCosting.DetermineCostOfCall(numberOfMinutesToChargeFor); Causes(new PhoneCallCharged(this.Id, phoneCall, costOfCall, numberOfMinutesCoveredByAllowance)); }
public void Record(PhoneCall phoneCall, PhoneCallCosting phoneCallCosting, IClock clock) { var numberOfMinutesCoveredByAllowance = new Minutes(); if (_freeCallAllowance != null) { numberOfMinutesCoveredByAllowance = _freeCallAllowance.MinutesWhichCanCover(phoneCall, clock); } var numberOfMinutesToChargeFor = phoneCall.Minutes.Subtract(numberOfMinutesCoveredByAllowance); var costOfCall = phoneCallCosting.DetermineCostOfCall(numberOfMinutesToChargeFor); Causes(new PhoneCallCharged(this.Id, phoneCall, costOfCall, numberOfMinutesCoveredByAllowance)); }