private void DriveBetweenEvents(IJourneyVisitor visitor, IJourneyEvent previous, IJourneyEvent current) { if (previous == null) { return; } if (previous.Point < current.Point) { visitor.Visit(CreateDrive(previous, current)); } }
public void Replay(IJourneyVisitor visitor) { IJourneyEvent previousEvent = null; using (var events = _events.GetEnumerator()) { while (events.MoveNext()) { var currentEvent = events.Current; DriveBetweenEvents(visitor, previousEvent, currentEvent); currentEvent.Visit(visitor); previousEvent = currentEvent; } } }
public void Visit(IJourneyVisitor visitor) { visitor.Visit(this); }
internal void Visit(IJourneyVisitor visitor) { _route.Replay(visitor); }