public bool CompleteShopAndGunTransferWS(string storeNumber, int transferNumber, int destinationStoreNumber)
        {
            bool transferWebService = false;

            if (storeNumber != string.Empty && transferNumber != 0 && destinationStoreNumber != 0)
            {
                TransferService.storeToStoreRequestType requestdata = new TransferService.storeToStoreRequestType();
                requestdata.serviceInformation        = new serviceInformationType();
                requestdata.serviceInformation.source = new endpointType();
                //to do: what should the source values be?
                requestdata.serviceInformation.source.systemId      = "P2";
                requestdata.serviceInformation.source.systemName    = "Cashlinx Phase 2";
                requestdata.serviceInformation.source.systemVersion = "4.0";
                var conf        = SecurityAccessor.Instance.EncryptConfig;
                var transferEsb = conf.GetMDSETransferService();
                requestdata.serviceInformation.domain = conf.DecryptValue(transferEsb.Domain);

                requestdata.serviceInformation.shopNumber    = ShopNumber;
                requestdata.serviceInformation.terminalID    = TerminalID;
                requestdata.serviceInformation.userID        = UserID;
                requestdata.serviceInformation.transactionID = TransactionID;
                requestdata.serviceInformation.timeStamp     = CurrentDateTime;
                requestdata.serviceData                         = new TransferService.storeToStoreRequestTypeServiceData();
                requestdata.serviceData.transfer                = new transferType();
                requestdata.serviceData.transfer.storeNumber    = storeNumber;
                requestdata.serviceData.transfer.transferNumber = transferNumber.ToString();
                requestdata.serviceData.transfer.destination    = destinationStoreNumber.ToString();
                TransferService.storeToStoreReplyType replydata = null;
                try
                {
                    replydata = portClient.StoreToStoreTransferOut(requestdata);
                }
                catch (Exception ee)
                {
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Transfer web service call failed for" + transferNumber + " " + ee);
                    return(false);
                }
                transferWebService = HandleWSResponse(replydata, transferNumber);
            }
            else
            {
                FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Invalid storeNumber or transferNumber or destinationStoreNumber for" + transferNumber);
            }

            portClient.Close();
            return(transferWebService);
        }
        private bool HandleWSResponse(TransferService.storeToStoreReplyType replydata, int transferNumber)
        {
            bool transferWebService = false;

            if (replydata.serviceInformation != null)
            {
                //check whether there is a general exception
                if (replydata.serviceInformation.status != null &&
                    replydata.serviceInformation.status.exceptionCode != null)
                {
                    ErrorMessage = replydata.serviceInformation.status.exceptionCode.ToString() +
                                   replydata.serviceInformation.status.sourceMessage;
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Transfer web service came back with errors for " + transferNumber + " "
                                                   + replydata.serviceInformation.status.exceptionCode.ToString() +
                                                   replydata.serviceInformation.status.sourceMessage);
                    //return false;
                }

                if (replydata.serviceData != null && replydata.serviceData.Items != null)
                {
                    if (replydata.serviceData.Items[0].GetType() != typeof(businessExceptionType))
                    {
                        //check the reply
                        transferWebService = true;
                        // FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Transfer web service call was successful for" + transferNumber + " " + returnValue);
                    }
                    else
                    {
                        businessExceptionType returnData = (businessExceptionType)replydata.serviceData.Items[0];
                        ErrorMessage = returnData.responseCode.ToString() +
                                       returnData.message;
                        FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Transfer web service returned with business exception for" + transferNumber + " " +
                                                       returnData.responseCode.ToString() +
                                                       returnData.message);
                        transferWebService = false;
                    }
                }
                else
                //No data came back from the web service call...log it
                {
                    transferWebService = true;
                    FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Transfer web service did not return any data ");
                }
            }
            return(transferWebService);
        }