コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }