public Cargo(string trackingId, int locationId, RouteSpecification routeSpecification, Itinerary itinerary) { TrackingId = trackingId; LocationId = routeSpecification.OriginLocationId; RouteSpecification = routeSpecification; Itinerary = itinerary; Delivery = Delivery.DerivedFrom(routeSpecification, itinerary, HandlingHistory.Empty); }
internal Delivery UpdateOnRouting(RouteSpecification routeSpecification, Itinerary itinerary) { return(new Delivery(LastHandlingEventId, itinerary, routeSpecification)); }
private Delivery(int lastEvent, Itinerary itinerary, RouteSpecification routeSpecification) { CalculatedAt = DateTime.Now; LastHandlingEventId = lastEvent; }
public static Delivery DerivedFrom(RouteSpecification routeSpecification, Itinerary itinerary, HandlingHistory handlingHistory) { return(new Delivery(handlingHistory.MostRecentlyCompletedEvent().Id, itinerary, routeSpecification)); }