public static DataSet QuerySubscriptionByESN(String ESN)
        {
            wsdsService.wsMessageHeader = getHeader();
            SecurityHelper.prepareSoapContext(wsdsService.RequestSoapContext);


            QuerySubscriptionRequest qsRequest = new QuerySubscriptionRequest();
            ElectronicSerialNumber   esn       = new ElectronicSerialNumber();

            esn.Item = ESN;


            esn.ItemElementName = ItemChoiceType.electronicSerialNumberDec;

            DataSet ds = new DataSet();

            SerialNumber sn = new SerialNumber();

            sn.Item       = esn;
            qsRequest.esn = sn;
            try
            {
                // wsdsService.query
                QuerySubscriptionReply qsReply = wsdsService.QuerySubscription(qsRequest);

                DataTable dtFeatures  = new DataTable();
                DataTable dtHistory   = new DataTable();
                DataTable dtPricePlan = new DataTable();
                if (qsReply.detailedServiceList != null)
                {
                    dtFeatures = Converter.ConvertToDataTable(qsReply.detailedServiceList);
                }
                if (qsReply.mdnList != null)
                {
                    dtHistory = Converter.ConvertToDataTable(qsReply.mdnList);
                }

                if (qsReply.pricePlanList != null)
                {
                    dtPricePlan = Converter.ConvertToDataTable(qsReply.pricePlanList);
                }

                ds.Tables.Add(dtHistory);
                ds.Tables.Add(dtPricePlan);
                ds.Tables.Add(dtFeatures);

                return(ds);
            }
            catch
            {
                throw;
            }
        }
        public static DataSet QuerySubscriptionByMDN(string Mdn)
        {
            DataSet ds = new DataSet();

            wsdsService.wsMessageHeader = getHeader();
            SecurityHelper.prepareSoapContext(wsdsService.RequestSoapContext);

            QuerySubscriptionRequest qsRequest = new QuerySubscriptionRequest();

            qsRequest.mdn = Mdn;
            QuerySubscriptionReply qsReply = wsdsService.QuerySubscription(qsRequest);

            DataTable dtFeatures  = new DataTable();
            DataTable dtHistory   = new DataTable();
            DataTable dtPricePlan = new DataTable();

            if (qsReply.detailedServiceList != null)
            {
                dtFeatures = Converter.ConvertToDataTable(qsReply.detailedServiceList);
            }
            if (qsReply.mdnList != null)
            {
                dtHistory = Converter.ConvertToDataTable(qsReply.mdnList);
            }

            if (qsReply.pricePlanList != null)
            {
                dtPricePlan = Converter.ConvertToDataTable(qsReply.pricePlanList);
            }

            ds.Tables.Add(dtHistory);
            ds.Tables.Add(dtPricePlan);
            ds.Tables.Add(dtFeatures);

            return(ds);
        }
        public static DataSet QuerySubscription(String Esn, String Mdn, EsnType etype)
        {
            DataSet ds = new DataSet();

            wsdsService.wsMessageHeader = getHeader();
            SecurityHelper.prepareSoapContext(wsdsService.RequestSoapContext);

            QuerySubscriptionRequest qsRequest = new QuerySubscriptionRequest();
            ElectronicSerialNumber   esn       = new ElectronicSerialNumber();

            esn.Item = Esn;

            switch (etype)
            {
            case EsnType.Hex:
                esn.ItemElementName = ItemChoiceType.electronicSerialNumberHex;
                break;

            case EsnType.Dec:
                esn.ItemElementName = ItemChoiceType.electronicSerialNumberDec;
                break;

            default:
                break;
            }

            if (!string.IsNullOrEmpty(Mdn))
            {
                qsRequest.mdn = Mdn;
            }

            SerialNumber sn = new SerialNumber();

            sn.Item       = esn;
            qsRequest.esn = sn;

            try
            {
                QuerySubscriptionReply qsReply = wsdsService.QuerySubscription(qsRequest);

                DataTable dtFeatures  = new DataTable();
                DataTable dtHistory   = new DataTable();
                DataTable dtPricePlan = new DataTable();
                if (qsReply.detailedServiceList != null)
                {
                    dtFeatures = Converter.ConvertToDataTable(qsReply.detailedServiceList);
                }
                if (qsReply.mdnList != null)
                {
                    dtHistory = Converter.ConvertToDataTable(qsReply.mdnList);
                }

                if (qsReply.pricePlanList != null)
                {
                    dtPricePlan = Converter.ConvertToDataTable(qsReply.pricePlanList);
                }

                ds.Tables.Add(dtHistory);
                ds.Tables.Add(dtPricePlan);
                ds.Tables.Add(dtFeatures);
                return(ds);
            }
            catch
            {
                throw;
            }
        }