示例#1
0
文件: SDKBatch.cs 项目: pkpjpm/Zombie
        internal SDKBatch(SDK.IQBSessionManager mgr, short majorVer, short minorVer, string Country)
        {
            _clousures = new Dictionary<int, ClosureSpec>();
            _mgr = mgr;
            _msg = _mgr.CreateMsgSetRequest(Country, majorVer, minorVer);
            _iterator = null;

            if (_msg == null) throw new Exception("Can't create message set");
        }
示例#2
0
 internal SDKConnection(SDK.IQBSessionManager sessionMgrMock)
 {
     _sessionMgr = sessionMgrMock;
 }
示例#3
0
        private void HostQuerySuccess(SDK.IQBBase baseObj)
        {
            var respHost = baseObj as SDK.IHostRet;

            if (respHost == null)
            {
                string typeName = "null type";

                if (baseObj != null)
                {
                    typeName = baseObj.Type.GetAsString();
                }
                throw new Exception("1.0 host query failure: unexpected detail type:" + typeName);
            }

            var lstVersion = respHost.SupportedQBXMLVersionList;
            double candidateVersion = 0.0;
            string versionList = string.Empty;

            for (int idx = 0; idx < lstVersion.Count; idx++)
            {
                string svers = lstVersion.GetAt(idx);

                if (versionList != string.Empty)
                {
                    versionList += ", ";
                }

                versionList += svers;

                double dver = 0.0;

                if (!double.TryParse(svers, NumberStyles.Any, CultureInfo.GetCultureInfo("en-US"), out dver))
                {
                    StatusMgr.LogStatus("Unexpected SDK version:" + svers);

                    continue;
                }

                if (dver > candidateVersion && dver <= MAX_DESKTOP_QBXML_VERSION)
                {
                    candidateVersion = dver;
                }
            }

            if (candidateVersion == 0.0)
            {
                StatusMgr.FormatError("No compatible SDK version found, using {0}", MAX_DESKTOP_QBXML_VERSION);
                candidateVersion = MAX_DESKTOP_QBXML_VERSION;
            }

            _SDKMajorVersion = (short)candidateVersion;

            string minor = (candidateVersion - _SDKMajorVersion).ToString();

            if (minor.Length > 1)
            {
                minor = minor.Substring(2, minor.Length - 1);
                _SDKMinorVersion = short.Parse(minor);
            }
            else
            {
                _SDKMinorVersion = 0;
            }

            var successEntry = new StatusEntry()
            {
                Summary = "QuickBooks Connection Established",
                TypeOfEntry = StatusEntry.EntryType.Status
            };

            successEntry.AddLine(string.Format("{0} version {1}.{2}", Safe.Value(respHost.ProductName),
                    Safe.Value(respHost.MajorVersion), Safe.Value(respHost.MinorVersion)));

            successEntry.AddLine(string.Format("Supported qbXML versions:{0}", versionList));
            successEntry.AddLine(string.Format("Using version {0}.{1}", _SDKMajorVersion, _SDKMinorVersion));

            StatusMgr.LogEntry(successEntry);
        }
示例#4
0
文件: SDKBatch.cs 项目: pkpjpm/Zombie
        public void SetClosures(SDK.IQBBase qry, QuerySuccess success, QueryFailure failure = null, bool allowEmpty = false)
        {
            var rqs = _msg.RequestList;

            for (int idx = 0; idx < rqs.Count; idx++)
            {
                var rq = rqs.GetAt(idx);
                if (rq.Detail == qry)
                {
                    _clousures.Add(rq.RequestID, new ClosureSpec()
                    {
                        success = success,
                        failure = failure,
                        allowEmptyReturn = allowEmpty
                    });
                    return;
                }
            }

            throw new Exception("Query not found in this batch");
        }
示例#5
0
 public static SDKConnection GetTestConnection(SDK.IQBSessionManager sessionMgr)
 {
     return new SDKConnection(sessionMgr);
 }