private Delivery(HandlingEvent lastHandlingEvent, Itinerary itinerary, RouteSpecification specification) { m_calculatedAt = DateTime.Now; m_lastEvent = lastHandlingEvent; m_misdirected = CalculateMisdirectionStatus(itinerary); m_routingStatus = CalculateRoutingStatus(itinerary, specification); m_transportStatus = CalculateTransportStatus(); m_lastKnownLocation = CalculateLastKnownLocation(); m_eta = CalculateEta(itinerary); m_nextExpectedActivity = CalculateNextExpectedActivity(specification, itinerary); m_isUnloadedAtDestination = CalculateUnloadedAtDestination(specification); }