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