private ShippingResult FedExTrackingResultWrap(FedExTrackingResult.TrackReply resultMessage) { ShippingResult shippingResult = new ShippingResult(); if (resultMessage.HighestSeverity == "ERROR") { shippingResult.StatusCode = "ERROR"; shippingResult.Status = resultMessage.Notifications[0].Message; shippingResult.Message = resultMessage.Notifications[0].Message; } else if (resultMessage.HighestSeverity == "SUCCESS") { if (resultMessage.TrackDetails[0].StatusCode.Trim().ToUpper() == "DL") { shippingResult.Delivered = true; } shippingResult.StatusCode = resultMessage.TrackDetails[0].StatusCode; shippingResult.Status = resultMessage.TrackDetails[0].StatusDescription; shippingResult.StatusSummary = resultMessage.TrackDetails[0].StatusDescription; shippingResult.ServiceType = resultMessage.TrackDetails[0].ServiceType; if (shippingResult.Delivered) { shippingResult.DeliveredDateTime = !string.IsNullOrEmpty(resultMessage.TrackDetails[0].ActualDeliveryTimestamp) ? resultMessage.TrackDetails[0].ActualDeliveryTimestamp : ""; // by CJ on Oct-05-2016 to include Signature. shippingResult.SignatureName = !string.IsNullOrEmpty(resultMessage.TrackDetails[0].DeliverySignatureName) ? resultMessage.TrackDetails[0].DeliverySignatureName : ""; } else { shippingResult.ScheduledDeliveryDate = !string.IsNullOrEmpty(resultMessage.TrackDetails[0].EstimatedDeliveryTimestamp) ? resultMessage.TrackDetails[0].EstimatedDeliveryTimestamp : ""; } if (resultMessage.TrackDetails[0].Events != null) { if (resultMessage.TrackDetails[0].Events.Length > 0) { foreach (var detail in resultMessage.TrackDetails[0].Events) { ShippingResultEventDetail eventDetail = new ShippingResultEventDetail(); eventDetail.Event = detail.EventType + " " + detail.EventDescription;; eventDetail.EventDateTime = detail.Timestamp; if (detail.Address != null) { eventDetail.EventAddress = detail.Address[0].City + " " + detail.Address[0].StateOrProvinceCode + " " + detail.Address[0].PostalCode; } shippingResult.TrackingDetails.Add(eventDetail); } } } } return(shippingResult); }
public ShippingResult GetTrackingResult() { ShippingResult shippingResult = new ShippingResult(); string shippingResultInString = GetTrackingInfoFedExInString(); XmlSerializer serializer = new XmlSerializer(typeof(FedExTrackingResult.TrackReply)); MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(shippingResultInString)); FedExTrackingResult.TrackReply resultingMessage = new FedExTrackingResult.TrackReply(); if (memStream != null) { resultingMessage = (FedExTrackingResult.TrackReply)serializer.Deserialize(memStream); } shippingResult = FedExTrackingResultWrap(resultingMessage); return(shippingResult); }