public int receiveResponseXML(string ticket, string response, string hresult, string message) { try { if (!IoC.Resolve <IQBService>().QBIsEnabled || !Ticket.Equals(ticket) || !IsTicketActive) { return(-1); } if (!String.IsNullOrEmpty(hresult)) { IoC.Resolve <ILogService>().InsertLog(LogTypeEnum.CommonError, message, hresult); return(-1); } XmlDocument xml = new XmlDocument(); xml.LoadXml(response); int requestId = QBXMLHelper.GetRequestId(xml); QBEntity entity = IoC.Resolve <IQBService>().GetQBEntityById(requestId); if (entity == null) { return(-1); } int statusCode = QBXMLHelper.GetStatusCode(xml); switch (statusCode) { case 0: case 530: case 531: case 550: case 560: case 570: { string qbId = entity.QBEntityId; string seqNum = entity.SeqNum; switch (QBXMLHelper.GetResponseType(xml)) { case "TxnVoidRs": case "TxnDelRs": qbId = QBXMLHelper.GetTxnID(xml); break; case "ReceivePaymentAddRs": case "InvoiceAddRs": qbId = QBXMLHelper.GetTxnID(xml); seqNum = QBXMLHelper.GetSeqNum(xml); break; case "CustomerAddRs": qbId = QBXMLHelper.GetListID(xml); seqNum = QBXMLHelper.GetSeqNum(xml); break; case "CustomerModRs": case "InvoiceModRs": seqNum = QBXMLHelper.GetSeqNum(xml); break; } entity.QBEntityId = qbId; entity.SynStateId = (int)SynStateEnum.Success; entity.SeqNum = seqNum; entity.UpdatedOn = DateTime.UtcNow; IoC.Resolve <IQBService>().UpdateQBEntity(entity); } break; case 3175: { IoC.Resolve <ILogService>().InsertLog(LogTypeEnum.CommonError, QBXMLHelper.GetStatusMessage(xml), statusCode.ToString()); } break; default: { IoC.Resolve <ILogService>().InsertLog(LogTypeEnum.CommonError, QBXMLHelper.GetStatusMessage(xml), statusCode.ToString()); entity.SynStateId = (int)SynStateEnum.Failed; entity.UpdatedOn = DateTime.UtcNow; IoC.Resolve <IQBService>().UpdateQBEntity(entity); } break; } return(0); } catch (Exception ex) { IoC.Resolve <ILogService>().InsertLog(LogTypeEnum.CommonError, ex.Message, ex); return(-1); } }
public int receiveResponseXML(string ticket, string response, string hresult, string message) { try { if (!QBManager.QBIsEnabled || !Ticket.Equals(ticket) || !IsTicketActive) { return(-1); } if (!String.IsNullOrEmpty(hresult)) { LogManager.InsertLog(LogTypeEnum.CommonError, message, hresult); return(-1); } XmlDocument xml = new XmlDocument(); xml.LoadXml(response); int requestId = QBXMLHelper.GetRequestId(xml); QBEntity entity = QBManager.GetQBEntityById(requestId); if (entity == null) { return(-1); } int statusCode = QBXMLHelper.GetStatusCode(xml); switch (statusCode) { case 0: case 530: case 531: case 550: case 560: case 570: string qbId = entity.QBEntityId; string seqNum = entity.SeqNum; switch (QBXMLHelper.GetResponseType(xml)) { case "TxnVoidRs": case "TxnDelRs": qbId = QBXMLHelper.GetTxnID(xml); break; case "ReceivePaymentAddRs": case "InvoiceAddRs": qbId = QBXMLHelper.GetTxnID(xml); seqNum = QBXMLHelper.GetSeqNum(xml); break; case "CustomerAddRs": qbId = QBXMLHelper.GetListID(xml); seqNum = QBXMLHelper.GetSeqNum(xml); break; case "CustomerModRs": case "InvoiceModRs": seqNum = QBXMLHelper.GetSeqNum(xml); break; } QBManager.UpdateQBEntity(entity.EntityId, qbId, entity.EntityType, entity.NopEntityId, SynStateEnum.Success, seqNum); break; case 3175: LogManager.InsertLog(LogTypeEnum.CommonError, QBXMLHelper.GetStatusMessage(xml), statusCode.ToString()); break; default: LogManager.InsertLog(LogTypeEnum.CommonError, QBXMLHelper.GetStatusMessage(xml), statusCode.ToString()); QBManager.UpdateQBEntity(entity.EntityId, entity.QBEntityId, entity.EntityType, entity.NopEntityId, SynStateEnum.Failed, entity.SeqNum); break; } return(0); } catch (Exception ex) { LogManager.InsertLog(LogTypeEnum.CommonError, ex.Message, ex); return(-1); } }