Example #1
0
        private EConnectCreateOrderResponse ProcessRequest(List <RFIDPassMediaReissueDetailStage> orderDetails)
        {
            string    xmlRequestCreateOrder  = "";
            string    xmlRequestFulfillOrder = "";
            XMLHelper xmlHelper = new XMLHelper();
            EConnectCreateOrderResponse  createOrderResponse  = null;
            EConnectFulfillOrderResponse fulfillOrderResponse = null;

            //Asssemble XML request
            xmlRequestCreateOrder = orderDetails.Count == 1 ? xmlHelper.AssembleOneUserCreateOrderRequest(orderDetails[0]) : xmlHelper.AssembleMultiUserCreateOrderRequest(orderDetails);

            //Create Order
            createOrderResponse = ExecuteConnectCreateOrder(xmlRequestCreateOrder);

            //Fulfill Order
            if (createOrderResponse.ResponseCode == 0)
            {
                xmlRequestFulfillOrder = xmlHelper.AssembleFulfillOrderRequest(orderDetails, createOrderResponse.DistributorOrderID);

                fulfillOrderResponse = ExecuteConnectFulfillOrder(xmlRequestFulfillOrder);

                createOrderResponse.ResponseCode    = fulfillOrderResponse.ResponseCode;
                createOrderResponse.ResponseMessage = fulfillOrderResponse.ResponseMessage;
                createOrderResponse.TransactionId   = fulfillOrderResponse.TransactionId;
                createOrderResponse.EConnectFulfillOrderResponse = fulfillOrderResponse;
            }

            return(createOrderResponse);
        }
Example #2
0
        private EConnectFulfillOrderResponse ExecuteConnectFulfillOrder(string requestXML)
        {
            EConnectFulfillOrderResponse response = new EConnectFulfillOrderResponse();

            ConnectService.SupplierServiceSoapClient myConnect = new ConnectService.SupplierServiceSoapClient();

            Console.WriteLine(string.Format("BEGIN Invoke Connect Service to fulfill order"));
            Console.WriteLine();

            string responseXML = myConnect.ProcessMessage(requestXML);

            Console.WriteLine(string.Format("END Invoke Connect Service to fulfill order"));
            Console.WriteLine();

            XmlDocument xml = new XmlDocument();

            xml.LoadXml(responseXML);

            XmlNodeList xnList          = xml.SelectNodes("/RTPSA_FulfillOrderRS");
            XmlNodeList xnListLineItems = xml.SelectNodes("/RTPSA_FulfillOrderRS/Order/LineItems/LineItem");

            foreach (XmlNode xn in xnList)
            {
                XmlNode nodeCode        = xn.SelectSingleNode("ResponseCode");
                XmlNode nodeMessage     = xn.SelectSingleNode("ResponseMessage");
                XmlNode nodeTransaction = xn.SelectSingleNode("TransactionId");

                if (nodeCode != null)
                {
                    response.ResponseCode = int.Parse(nodeCode.InnerText);
                }
                if (nodeMessage != null)
                {
                    response.ResponseMessage = nodeMessage.InnerText;
                }
                if (nodeTransaction != null)
                {
                    response.TransactionId = int.Parse(nodeTransaction.InnerText);
                }
            }

            foreach (XmlNode xn in xnListLineItems)
            {
                EConnectFulfillOrderDetailResponse detailResponse = new EConnectFulfillOrderDetailResponse();
                XmlNode nodeCode    = xn.SelectSingleNode("ResponseCode");
                XmlNode nodeMessage = xn.SelectSingleNode("ResponseMessage");

                if (nodeCode != null)
                {
                    detailResponse.ResponseCode = int.Parse(nodeCode.InnerText);
                }
                if (nodeMessage != null)
                {
                    detailResponse.ResponseMessage = nodeMessage.InnerText;
                }

                detailResponse.IPCode = int.Parse(xn.Attributes["DistributorLineNumber"].Value);

                response.EConnectFulfillOrderDetailResponses.Add(detailResponse);
            }

            return(response);
        }