public VmTruck CreateTruckForScheduledArrival(JwTimestamp expectedArrivalLocalTs) { JwTimestamp expectedDepartureLocalTs = ComputeScheduledDepartureLocalTimestampFromScheduledArrival(expectedArrivalLocalTs); VmTruck truck = new VmTruck(); truck.ExpectedDepartureLocalTs = expectedDepartureLocalTs; truck.CarrierCode = CarrierCode; truck.Number = FlightNumber; truck.OriginAirportCode = OriginAirportCode; truck.DestinationAirportCode = DestinationAirportCode; return truck; }
public void HandleIdentifyTruck(VmScheduledTruck scheduledTruck, JwDate scheduledArrivalDate) { JwTimestamp expectedArrivalTs = scheduledTruck.GetScheduledArrivalTimestampForScheduledArrivalDate(scheduledArrivalDate); VmTruck truck = scheduledTruck.CreateTruckForScheduledArrival(expectedArrivalTs); truck.ActualDepartureLocalTs = truck.ExpectedDepartureLocalTs.GetTimestampCopy(); truck.ActualArrivalLocalTs = expectedArrivalTs.GetTimestampCopy(); Truck = truck; JwTimestamp nowLocalTs = JwTimestamp.CreateNowLocal(); if( nowLocalTs.IsBefore(truck.ActualArrivalLocalTs) ) { truck.ActualArrivalLocalTs = nowLocalTs; //err - removed at request of AA, the only user of this feature. Waiting for beta testing //completion (and acceptance) to remove the following line. // truck.ActualDepartureLocalTs = scheduledTruck.InferActualDepartureFromActualArrival(nowLocalTs); JwDuration tooEarlyThreshold = nowLocalTs.Difference(expectedArrivalTs); if( tooEarlyThreshold.GetTotalMinutes() > VmProperties.Default.GetEarlyTruckAllowanceMinutes() ) { ShowWarnOfEarlyArrivalPanel(); return; } } ShowActualsPanel(); }