private void ShowResult(TrackingInfo info)
 {
     StringBuilder builder = new StringBuilder();
     builder.Append("<h2>Result </h2><div>");
     builder.Append("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">");
     builder.Append("<tr><td>");
     builder.Append("Tracking Number");
     builder.Append("</td><td>");
     builder.Append(info.TrackingNumber);
     builder.Append("</td></tr>");
     builder.Append("<tr><td>");
     builder.Append("Summary");
     builder.Append("</td><td>");
     builder.Append(info.Summary);
     builder.Append("</td></tr>");
     builder.Append("<tr><td>");
     builder.Append("Details");
     builder.Append("</td><td><div>");
     int i = 0;
     foreach (var detail in info.Details)
     {
         builder.Append("<p>" + detail + "</p>");
         i++;
     }
     if (info.Details.Count == 0)
     {
         builder.Append("<p>N/A</p>");
     }
     builder.Append("</div></td></tr>");
     builder.Append("</table></div>");
     dvTrackResponse.InnerHtml = builder.ToString();
 }
 public static TrackingInfo FromXml(string xml)
 {
     int idx1 = 0;
     int idx2 = 0;
     var t = new TrackingInfo();
     if(xml.Contains("<TrackSummary>"))
     {
         idx1 = xml.IndexOf("<TrackSummary>") + 14;
         idx2 = xml.IndexOf("</TrackSummary>");
         t._summary = xml.Substring(idx1, idx2 - idx1);
     }
     int lastidx = 0;
     while (xml.IndexOf("<TrackDetail>", lastidx) > -1)
     {
         idx1 = xml.IndexOf("<TrackDetail>", lastidx) + 13;
         idx2 = xml.IndexOf("</TrackDetail>", lastidx + 13);
         t.Details.Add(xml.Substring(idx1, idx2 - idx1));
         lastidx = idx2;
     }
     return t;
 }
        public static TrackingInfo FromXml(string xml)
        {
            int idx1 = 0;
            int idx2 = 0;
            var t    = new TrackingInfo();

            if (xml.Contains("<TrackSummary>"))
            {
                idx1       = xml.IndexOf("<TrackSummary>") + 14;
                idx2       = xml.IndexOf("</TrackSummary>");
                t._summary = xml.Substring(idx1, idx2 - idx1);
            }
            int lastidx = 0;

            while (xml.IndexOf("<TrackDetail>", lastidx) > -1)
            {
                idx1 = xml.IndexOf("<TrackDetail>", lastidx) + 13;
                idx2 = xml.IndexOf("</TrackDetail>", lastidx + 13);
                t.Details.Add(xml.Substring(idx1, idx2 - idx1));
                lastidx = idx2;
            }
            return(t);
        }
        private TrackingInfo ParseTrackingResponse(XmlDocument tinfo)
        {
            try
            {
                TrackingInfo trackdetail = new TrackingInfo();
                var elem = tinfo.DocumentElement;

                if (tinfo.DocumentElement != null)
                {
                    if (elem.Name.ToLower().Trim() != "error")
                    {
                        XmlNodeList list = tinfo.DocumentElement.SelectNodes("TrackInfo");
                        if (list != null)
                            foreach (XmlNode node in list)
                            {
                                if (node.FirstChild.Name.ToLower() == "error")
                                {
                                    string error = node.FirstChild.InnerXml;
                                    trackdetail.IsFailed = true;
                                    trackdetail.Error = error;
                                    break;
                                }
                                else
                                {
                                    trackdetail.TrackingNumber =
                                        node.Attributes["ID"].Value;
                                    trackdetail.Summary = node.SelectSingleNode("TrackSummary").InnerXml;
                                    XmlNodeList detailslist = node.SelectNodes("TrackDetail");

                                    if (detailslist.Count > 0)
                                    {
                                        foreach (XmlNode detail in detailslist)
                                        {
                                            trackdetail.Details.Add(detail.InnerXml);
                                        }
                                    }
                                    return trackdetail;
                                }
                            }
                    }
                    else
                    {
                        string error = elem.InnerXml;
                        trackdetail.IsFailed = true;
                        trackdetail.Error = error;
                    }
                }
                return trackdetail;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }