Пример #1
0
        public TrackingResponse Tracking(string trackingNumber)
        {
            TrackingResponse     result;
            KnownTrackingRequest track = setTracking(new string[] { trackingNumber });

            XmlSerializer serializer = new XmlSerializer(typeof(TrackingResponse));

            using (TextReader reader = new StringReader(SendRequest(track)))
            {
                try
                {
                    result = (TrackingResponse)serializer.Deserialize(reader);
                }
                catch (Exception e)
                {
                    result = new TrackingResponse()
                    {
                        AWBInfo = new AWBInfo[] {
                            new AWBInfo()
                            {
                                Status = new Status()
                                {
                                    ActionStatus = e.Message
                                }
                            }
                        }
                    };
                }
            }

            return(result);
        }
Пример #2
0
        // ReSharper disable once InconsistentNaming
        public KnownTrackingResponse KnownAWBTracking(List <string> AWBs
                                                      , Enums.LevelOfDetails levelOfDetails           = Enums.LevelOfDetails.AllCheckpoints
                                                      , Enums.PiecesEnabled detailsRequested          = Enums.PiecesEnabled.ShipmentOnly
                                                      , Enums.EstimatedDeliveryDateEnabled eddEnabled = Enums.EstimatedDeliveryDateEnabled.No)
        {
            KnownTrackingRequest ktr = new KnownTrackingRequest
            {
                Request = new Request
                {
                    ServiceHeader = new ServiceHeader()
                },
                AWBNumber      = new AWBNumber(AWBs),
                PiecesEnabled  = detailsRequested,
                LevelOfDetails = levelOfDetails,
                EstimatedDeliveryDateEnabled = eddEnabled
            };
            //foreach (string awb in AWBs)
            //{
            //    ktr.AWBNumber.ArrayOfAWBNumberItem.Add(new AWBNumber(awb));
            //}

            // Validate the request

            List <ValidationResult> validationResult = Common.Validate(ref ktr);

            if (validationResult.Any())
            {
                throw new GloWSValidationException(validationResult);
            }

            LastJSONRequest  = JsonConvert.SerializeObject(KnownTrackingRequest.DecorateRequest(ktr), Formatting.Indented);
            LastJSONResponse = SendRequestAndReceiveResponse(LastJSONRequest, "TrackingRequest");

            KnownTrackingResponse retval;

            try
            {
                // Deserialize the result back to an object.
                List <string> errors = new List <string>();

                retval = JsonConvert.DeserializeObject <KnownTrackingResponse>(LastJSONResponse, new JsonSerializerSettings()
                {
                    Error = delegate(object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args)
                    {
                        errors.Add(args.ErrorContext.Error.Message);
                        args.ErrorContext.Handled = true;
                    }
                });
            }
            catch
            {
                retval = new KnownTrackingResponse();
            }

            return(retval);
        }
Пример #3
0
        private KnownTrackingRequest setTracking(string[] items)
        {
            var tracking = new KnownTrackingRequest();

            tracking.Request          = requset1Init();
            tracking.LanguageCode     = "tw";
            tracking.Items            = items;
            tracking.ItemsElementName = new ItemsChoiceType[] { 0 };
            tracking.LevelOfDetails   = LevelOfDetails.ALL_CHECK_POINTS;
            tracking.PiecesEnabled    = KnownTrackingRequestPiecesEnabled.S;

            return(tracking);
        }
Пример #4
0
        public static string fillXmlForShipTracking(trackingRequestModel requestModel, string _siteId, string _sitePassword, PistisContext db, string checkAction)
        {
            uint awbNo = Convert.ToUInt32(requestModel.trackingNumber);

            XmlSerializer        serialization = new XmlSerializer(typeof(KnownTrackingRequest));
            KnownTrackingRequest ktr           = new KnownTrackingRequest();

            ktr.Request = new TrackingRequestAllCheckPoints.Request();
            ktr.Request.ServiceHeader = new TrackingRequestAllCheckPoints.RequestServiceHeader();

            ktr.Request.ServiceHeader.MessageTime      = System.DateTime.Now;
            ktr.Request.ServiceHeader.MessageReference = "1234567890123456789012345678";
            ktr.Request.ServiceHeader.SiteID           = _siteId;
            ktr.Request.ServiceHeader.Password         = _sitePassword;

            ktr.LanguageCode = "en";
            ktr.AWBNumber    = awbNo;

            if (checkAction.ToLower() == "all")
            {
                ktr.LevelOfDetails = "ALL_CHECK_POINTS";
            }
            if (checkAction.ToLower() == "last")
            {
                ktr.LevelOfDetails = "LAST_CHECK_POINT_ONLY";
            }


            var result = "";
            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Encoding           = new UnicodeEncoding(false, false);
            settings.Indent             = true;
            settings.OmitXmlDeclaration = true;

            using (StringWriter textWriter = new StringWriter())
            {
                using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, settings))
                {
                    serialization.Serialize(xmlWriter, ktr);
                }
                result = textWriter.ToString();
            }

            return(result);
        }