/// <summary>
 ///     Uses TripContextStateFactory to inject context
 ///     object with correct concrete TripState object
 ///     using the TripStateStatus enum in Trip instance
 /// </summary>
 /// <param name="trip"></param>
 public TripContext(Trip trip)
 {
     Debug.Assert(trip != null, "trip cannot be null");
     Trip      = trip;
     TripState = TripContextStateFactory.Get(this);
 }