internal static CargoRoutingDTO toDTO(Cargo cargo)
{
var itinerary = cargo.Itinerary;
var legDTOList = new List<LegDTO>();
if(itinerary != null)
{
var legs = itinerary.Legs;
legDTOList = new List<LegDTO>(legs.Count());
foreach(Leg leg in legs)
{
var legDTO = new LegDTO(
leg.Voyage.VoyageNumber.Value,
leg.LoadLocation.UnLocode.Value,
leg.UnloadLocation.UnLocode.Value,
leg.LoadTime,
leg.UnloadTime);
legDTOList.Add(legDTO);
}
}
return new CargoRoutingDTO(
cargo.TrackingId.Value,
cargo.RouteSpecification.Origin.UnLocode.Value,
cargo.RouteSpecification.Destination.UnLocode.Value,
cargo.RouteSpecification.ArrivalDeadline,
cargo.RoutingStatus == RoutingStatus.MISROUTED,
legDTOList
);
}