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); }
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); }