Пример #1
0
        internal static Account FindOrAddAccount(ServiceContext context, AccountTypeEnum accountType, AccountClassificationEnum classification)
        {
            Account        typeOfAccount = null;
            List <Account> listOfAccount = FindAll <Account>(context, new Account(), 1, 500);

            if (listOfAccount.Count > 0)
            {
                foreach (Account acc in listOfAccount)
                {
                    if (acc.AccountType == accountType && acc.Classification == classification && acc.status != EntityStatusEnum.SyncError)
                    {
                        typeOfAccount = acc;
                        break;
                    }
                }
            }

            if (typeOfAccount == null)
            {
                DataService.DataService service = new DataService.DataService(context);
                Account account;

                account = QBOHelper.CreateAccount(context, accountType, classification);
                account.Classification = classification;
                account.AccountType    = accountType;
                Account createdAccount = service.Add <Account>(account);
                typeOfAccount = createdAccount;
            }

            return(typeOfAccount);
        }
Пример #2
0
        public void BatchIncludeTest()
        {
            ServiceContext context = Initializer.InitializeQBOServiceContextUsingoAuth();

            DataService.DataService service = new DataService.DataService(context);

            DataService.Batch batch       = service.CreateNewBatch();
            List <String>     optionsData = new List <string>();

            optionsData.Add("firsttxndate");

            batch.Add("Select * From CompanyInfo", "QueryCo", optionsData);
            batch.Execute();

            bool receivedIncludeParameter            = false;
            IntuitBatchResponse queryCompanyResponse = batch["QueryCo"];

            if (queryCompanyResponse.ResponseType == ResponseType.Query)
            {
                CompanyInfo companyInfo = queryCompanyResponse.Entities[0] as CompanyInfo;
                foreach (NameValue nameValue in companyInfo.NameValue)
                {
                    receivedIncludeParameter = nameValue.Name == "firsttxndate";
                    if (receivedIncludeParameter)
                    {
                        break;
                    }
                }
            }
            if (!receivedIncludeParameter)
            {
                Assert.Fail("CompanyInfo not returned");
            }
        }
Пример #3
0
        public void BatchEntityTest()
        {
            ServiceContext context = Initializer.InitializeQBOServiceContextUsingoAuth();

            DataService.DataService service = new DataService.DataService(context);

            Customer customer      = CreateCustomer();
            Customer addedCustomer = service.Add(customer);

            Invoice invoice = QBOHelper.CreateInvoice(context);

            QueryService <Term> termContext = new QueryService <Term>(context);

            QueryService <TaxRate> taxRateContext = new QueryService <TaxRate>(context);
            QueryService <TaxCode> taxCodeContext = new QueryService <TaxCode>(context);
            QueryService <Item>    itemContext    = new QueryService <Item>(context);

            DataService.Batch batch = service.CreateNewBatch();
            batch.Add(addedCustomer, "UpdateCustomer", OperationEnum.update);
            batch.Add(invoice, "AddInvoice", OperationEnum.create);
            batch.Add(termContext.Take(5).ToIdsQuery(), "QueryTerm");
            batch.Add(taxRateContext.Take(5).ToIdsQuery(), "QueryTaxRate");
            batch.Add(taxCodeContext.Take(5).ToIdsQuery(), "QueryTaxCode");
            batch.Add(itemContext.Take(5).ToIdsQuery(), "QueryItem");

            batch.Execute();
            foreach (IntuitBatchResponse resp in batch.IntuitBatchItemResponses)
            {
                if (resp.ResponseType == ResponseType.Exception)
                {
                    Assert.Fail(resp.Exception.ToString());
                }
            }
        }
Пример #4
0
        internal static Item FindOrAddItem(ServiceContext context, ItemTypeEnum type)
        {
            Item        typeOfItem = null;
            List <Item> listOfItem = FindAll <Item>(context, new Item(), 1, 500).Where(i => i.status != EntityStatusEnum.SyncError).ToList();

            if (listOfItem.Count > 0)
            {
                foreach (Item item in listOfItem)
                {
                    if (item.Type == type)
                    {
                        typeOfItem = item;
                        break;
                    }
                }
            }

            if (typeOfItem == null)
            {
                DataService.DataService service = new DataService.DataService(context);
                Item item;

                item = QBOHelper.CreateItem(context);
                Item createdItem = service.Add <Item>(item);
                typeOfItem = createdItem;
            }

            return(typeOfItem);
        }
Пример #5
0
        internal static byte[] Download(ServiceContext context, Attachable entity)
        {
            //Initializing the Dataservice object with ServiceContext
            DataService.DataService service = new DataService.DataService(context);

            return(service.Download(entity));
        }
Пример #6
0
        internal static T FindById <T>(ServiceContext context, T entity) where T : IEntity
        {
            DataService.DataService service = new DataService.DataService(context);
            T foundEntity = service.FindById(entity);

            return(foundEntity);
        }
Пример #7
0
        internal static ReadOnlyCollection <IntuitBatchResponse> BatchTest <T>(ServiceContext context, Dictionary <OperationEnum, object> operationDictionary) where T : IEntity
        {
            DataService.DataService service = new DataService.DataService(context);
            List <T> addedList = new List <T>();
            List <T> newList   = new List <T>();


            QueryService <T> entityContext = new QueryService <T>(context);

            DataService.Batch batch = service.CreateNewBatch();

            foreach (KeyValuePair <OperationEnum, object> entry in operationDictionary)
            {
                if (entry.Value.GetType().Name.Equals(typeof(T).Name))
                {
                    batch.Add(entry.Value as IEntity, entry.Key.ToString() + entry.Value.GetType().Name, entry.Key);
                }
                else
                {
                    batch.Add(entry.Value as string, "Query" + typeof(T).Name);
                }
            }


            batch.Execute();

            return(batch.IntuitBatchItemResponses);
        }
Пример #8
0
        internal static PaymentMethod FindOrAddPaymentMethod(ServiceContext context, string paymentType)
        {
            PaymentMethod        typeOfPayment = null;
            List <PaymentMethod> listOfPayment = FindAll <PaymentMethod>(context, new PaymentMethod(), 1, 10).Where(p => p.status != EntityStatusEnum.SyncError).ToList();

            if (listOfPayment.Count > 0)
            {
                if (context.ServiceType == IntuitServicesType.QBO)
                {
                    foreach (PaymentMethod payment in listOfPayment)
                    {
                        if (payment.Type == paymentType)
                        {
                            typeOfPayment = payment;
                            break;
                        }
                    }

                    if (typeOfPayment == null)
                    {
                        //Create a new purchase account
                        DataService.DataService service = new DataService.DataService(context);
                        PaymentMethod           payment;
                        payment = QBOHelper.CreatePaymentMethod(context);
                        PaymentMethod createdPurchase = service.Add <PaymentMethod>(payment);
                        typeOfPayment = createdPurchase;
                    }
                }
            }

            return(typeOfPayment);
        }
Пример #9
0
        /// <summary>
        /// 判断用户是否存在
        /// </summary>
        /// <param name="szUserCode"></param>
        /// <returns></returns>
        public static bool IsUserExist(long szUserCode, string username)
        {
            string strSql = "Select Count(*) From user_infor Where USER_Name='" + username + "'or user_id=" + szUserCode + "";
            object oNum   = null;

            DataService.DataService dCurService = new DataService.DataService();

            oNum = dCurService.GetValue(strSql);

            if (oNum != null)
            {
                if (Convert.ToInt32(oNum) < 1)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                return(false);
            }
        }
Пример #10
0
        public void PreferencesBatchUsingoAuth()
        {
            DataService.DataService service = new DataService.DataService(qboContextoAuth);
            Preferences             found   = Helper.FindOrAdd <Preferences>(qboContextoAuth, new Preferences());

            DataService.Batch batch = service.CreateNewBatch();
            batch.Add(QBOHelper.UpdatePreferences(qboContextoAuth, found), "Update", OperationEnum.update);

            batch.Execute();

            ReadOnlyCollection <IntuitBatchResponse> batchResponses = batch.IntuitBatchItemResponses;

            int position = 0;

            foreach (IntuitBatchResponse resp in batchResponses)
            {
                if (resp.ResponseType == ResponseType.Exception)
                {
                    Assert.Fail(resp.Exception.ToString());
                }

                Assert.IsFalse(string.IsNullOrEmpty((resp.Entity as Preferences).Id));
                position++;
            }
        }
Пример #11
0
        internal static Purchase FindOrAddPurchase(ServiceContext context, PaymentTypeEnum paymentType)
        {
            Purchase        typeOfPurchase = null;
            List <Purchase> listOfPurchase = FindAll <Purchase>(context, new Purchase(), 1, 10).Where(p => p.status != EntityStatusEnum.SyncError).ToList();

            if (listOfPurchase.Count > 0)
            {
                if (context.ServiceType == IntuitServicesType.QBO)
                {
                    foreach (Purchase payment in listOfPurchase)
                    {
                        if (payment.PaymentType == paymentType)
                        {
                            typeOfPurchase = payment;
                            break;
                        }
                    }

                    if (typeOfPurchase == null)
                    {
                        //create a new purchase account
                        DataService.DataService service = new DataService.DataService(context);
                        Purchase purchase;
                        purchase = QBOHelper.CreatePurchase(context, PaymentTypeEnum.Cash);
                        //purchase.PaymentType = paymentType;
                        //purchase.PaymentTypeSpecified = true;
                        Purchase createdPurchase = service.Add <Purchase>(purchase);
                        typeOfPurchase = createdPurchase;
                    }
                }
            }

            return(typeOfPurchase);
        }
Пример #12
0
        internal static ServiceContext InitializeQBOServiceContextUsingoAuth()
        {
            if (counter == 0)
            {
                //if(tokenDict.Count == 0)
                Initialize();
            }
            else
            {
                //Load the second json file
                FileInfo fileinfo = new FileInfo(AuthorizationKeysQBO.tokenFilePath);
                string   jsonFile = File.ReadAllText(fileinfo.FullName);
                var      jObj     = JObject.Parse(jsonFile);
                AuthorizationKeysQBO.accessTokenQBO  = jObj["Oauth2Keys"]["AccessToken"].ToString();
                AuthorizationKeysQBO.refreshTokenQBO = jObj["Oauth2Keys"]["RefreshToken"].ToString();
            }

            ServiceContext         context      = null;
            OAuth2RequestValidator reqValidator = null;

            try
            {
                reqValidator = new OAuth2RequestValidator(AuthorizationKeysQBO.accessTokenQBO);
                context      = new ServiceContext(AuthorizationKeysQBO.realmIdIAQBO, IntuitServicesType.QBO, reqValidator);
                context.IppConfiguration.MinorVersion.Qbo = "54";
                context.IppConfiguration.BaseUrl.Qbo      = "https://sandbox-quickbooks.api.intuit.com/";
                DataService.DataService service = new DataService.DataService(context);
                var compinfo = service.FindAll <CompanyInfo>(new CompanyInfo());

                //Add a dataservice call to check 401

                return(context);
            }
            catch (IdsException ex)
            {
                if (ex.Message == "Unauthorized-401")
                {
                    //oauthClient = new OAuth2Client(AuthorizationKeysQBO.clientIdQBO, AuthorizationKeysQBO.clientSecretQBO, AuthorizationKeysQBO.redirectUrl, AuthorizationKeysQBO.appEnvironment);
                    //var tokenResp = oauthClient.RefreshTokenAsync(AuthorizationKeysQBO.refreshTokenQBO).Result;
                    //if (tokenResp.AccessToken != null && tokenResp.RefreshToken != null)
                    //{
                    //    FileInfo fileinfo = new FileInfo(AuthorizationKeysQBO.tokenFilePath);
                    //    string jsonFile = File.ReadAllText(fileinfo.FullName);
                    //    var jObj = JObject.Parse(jsonFile);
                    //    jObj["Oauth2Keys"]["AccessToken"] = tokenResp.AccessToken;
                    //    jObj["Oauth2Keys"]["RefreshToken"] = tokenResp.RefreshToken;

                    //    string output = JsonConvert.SerializeObject(jObj, Formatting.Indented);
                    //    File.WriteAllText(fileinfo.FullName, output);

                    var serviceContext = Helper.GetNewTokens_ServiceContext();
                    return(serviceContext);
                }
                else
                {
                    throw;
                }
            }
        }
Пример #13
0
        internal static List <T> FindByParentId <T>(ServiceContext context, T entity) where T : IEntity
        {
            DataService.DataService service = new DataService.DataService(context);

            ReadOnlyCollection <T> entityList = service.FindByParentId(entity);

            return(entityList.ToList <T>());
        }
Пример #14
0
        /// <summary>
        /// 记载系统和数据库管理员系统管理日志
        /// </summary>
        /// <param name="szUserCode">用户代码</param>
        /// <param name="IP">用户ip地址</param>
        /// <param name="MAC">用户物理网卡地址</param>
        public static bool AddSysLogManagement(string szUserCode, string IP, string MAC, string OBJECT, string OPERATION, string SQL)
        {
            string strSql = string.Format("Insert Into SysLogManagement(UserCode,IP,MAC,OPERATIONDATE,OBJECT,OPERATION,SQL) values('{0}','{1}','{2}',sysdate,'{3}','{4}','{5}')", szUserCode, IP, MAC, OBJECT, OPERATION, SQL);

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.ExecOraSql(strSql));
        }
Пример #15
0
        /// <summary>
        /// 记载模块日志启动运行时间
        /// </summary>
        /// <param name="szUserCode">用户代码</param>
        /// <param name="IP">用户ip地址</param>
        /// <param name="MAC">用户物理网卡地址</param>
        public static bool AddSysLogModule(string szUserCode, string IP, string MAC, string ModuleFunName)
        {
            string strSql = string.Format("Insert Into SysLogModule(UserCode,IP,MAC,RUNTIME,MODULE) values('{0}','{1}','{2}',sysdate,'{3}')", szUserCode, IP, MAC, ModuleFunName);

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.ExecOraSql(strSql));
        }
Пример #16
0
        /// <summary>
        /// 记载用户登陆日志
        /// </summary>
        /// <param name="szUserCode">用户代码</param>
        /// <param name="IP">用户ip地址</param>
        /// <param name="MAC">用户物理网卡地址</param>
        public static bool AddLogUserLogin(string szUserCode, string IP, string MAC)
        {
            string strSql = string.Format("Insert Into sysloguserlogin(UserCode,IP,MAC,LOGINTIME) values('{0}','{1}','{2}',sysdate)", szUserCode, IP, MAC);

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.ExecOraSql(strSql));
        }
Пример #17
0
        /// <summary>
        /// 记载用户使用数据日志
        /// </summary>
        /// <param name="szUserCode">用户代码</param>
        /// <param name="IP">用户ip地址</param>
        /// <param name="MAC">用户物理网卡地址</param>
        /// <param name="DATATYPE">数据类型</param>
        /// <param name="DATA">数据内容</param>
        /// <param name="OPERATION">0:浏览; 1:修改;2:下载;</param>
        /// <param name="SQL">操作语句</param>
        public static bool AddLogDataLog(string szUserCode, string IP, string MAC, string DATATYPE, string DATA, string OPERATION, string SQL)
        {
            string strSql = string.Format("Insert Into syslogdatalog(UserCode,IP,MAC,OPERATIONDATE,DATATYPE,DATA,OPERATION,SQL) values('{0}','{1}','{2}',sysdate,'{3}','{4}','{5}','{6}')", szUserCode, IP, MAC, DATATYPE, DATA, OPERATION, SQL);

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.ExecOraSql(strSql));
        }
Пример #18
0
        internal static List <T> FindAll <T>(ServiceContext context, T entity, int startPosition = 1, int maxResults = 100) where T : IEntity
        {
            DataService.DataService service = new DataService.DataService(context);

            ReadOnlyCollection <T> entityList = service.FindAll(entity, startPosition, maxResults);

            return(entityList.ToList <T>());
        }
Пример #19
0
        public static DataSet Getdepatmentinfor(string Filter)
        {
            string strSql = "Select * From department where (" + Filter + ") ";

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.GetOleDataset(strSql));
        }
Пример #20
0
        public static DataSet GetRoleinfor()
        {
            string strSql = "Select ROLE_ID,role_name From role";

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.GetOleDataset(strSql));
        }
Пример #21
0
        /// <summary>
        /// 得到角色信息
        /// </summary>
        /// <param name="szUserCode"></param>
        /// <returns></returns>
        public static DataTable GetRole()
        {
            string strSql = "Select ROLE_ID,role_name From role";

            DataService.DataService dCurService = new DataService.DataService();

            return(dCurService.GetOleTable(strSql));
        }
Пример #22
0
        internal static T DonotUpdateAccountOnTxnsAsyncFrance <T>(ServiceContext context, T entity) where T : IEntity
        {
            //Initializing the Dataservice object with ServiceContext
            DataService.DataService service = new DataService.DataService(context);

            bool isUpdated = false;

            // Used to signal the waiting test thread that a async operation have completed.
            ManualResetEvent manualEvent = new ManualResetEvent(false);

            IdsException exp = null;

            T returnedEntity = entity;

            // Async callback events are anonomous and are in the same scope as the test code,
            // and therefore have access to the manualEvent variable.

            //check this line for change
            service.OnDoNotUpdateAccAsyncCompleted += (sender, e) =>
            {
                isUpdated = true;
                manualEvent.Set();
                if (e.Error != null)
                {
                    exp = e.Error;
                }
                else
                {
                    if (e.Entity != null)
                    {
                        returnedEntity = (T)e.Entity;
                    }
                }
            };

            // Call the service method
            service.DoNotUpdateAccountOnTxns(entity);

            manualEvent.WaitOne(30000, false); Thread.Sleep(10000);

            if (exp != null)
            {
                throw exp;
            }
            // Check if we completed the async call, or fail the test if we timed out.
            if (!isUpdated)
            {
                Assert.Fail("DoNotUpdateAccountOnTxns Failed");
            }

            //if entity is returned returnedEntity will be set with new object with same values
            Assert.AreNotEqual(returnedEntity, entity);

            // Set the event to non-signaled before making next async call.
            manualEvent.Reset();

            return(returnedEntity);
        }
Пример #23
0
        /// <summary>
        /// 判断用户是否是第一次登陆该系统
        ///
        /// 如果是则记下该用户的MAC地址
        /// 如果不是则进行MAC地址的验证
        /// </summary>
        /// <param name="szUserCode"></param>
        /// <param name="szUserPWD"></param>
        /// <param name="szUserMac"></param>
        /// <param name="szLoginInfo"></param>
        /// <returns></returns>
        public static bool LoginProjectDB(string szUserCode, string szUserPWD)
        {
            string strSql = string.Format("Select password From user Where username='******'", szUserCode);

            DataService.DataService dCurService = new DataService.DataService();

            DataTable dCurUserTable = dCurService.GetOleTable(strSql);

            string szPwd = "";

            if (dCurUserTable.Rows.Count > 0)
            {
                //if( UserIsDeleted(szUserCode) )
                //{
                //    szLoginInfo = "该帐号已经被删除,请联系管理员重新建立该帐号" ;
                //    return false;
                //}
                //if( UserIsLocked(szUserCode))
                //{
                //    szLoginInfo = "该帐号已经被锁定,请联系管理员为该帐号解除锁定" ;
                //    return false;
                //}
                //szMac = dCurUserTable.Rows[0]["Mac"].ToString();
                //if( szMac.Length == 0 )
                //{
                //    strSql = string.Format("Update SysUser Set  Mac='{0}' Where UserCode='{1}'",szUserMac,szUserCode);

                //    if( dCurService.ExecOleSql(strSql))
                //    {
                //        szLoginInfo = "欢迎您首次登陆该系统," ;
                //    }
                //}
                //else
                //{
                //    szNoVerify = dCurUserTable.Rows[0]["NoMacVerify"].ToString().Trim();
                //    if( szNoVerify != "1")
                //    {
                //        if( szMac != szUserMac )
                //        {
                //            szLoginInfo += "该MAC地址不符合原始登陆记载,请联系管理确认清除该地址" ;
                //            return false;
                //        }
                //    }
                //}
                szPwd = dCurUserTable.Rows[0]["password"].ToString();
                if (szPwd != szUserPWD)
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            //return LogAdminService.AddLogUserLogin(szUserCode,IP,szUserMac);
            return(true);
        }
Пример #24
0
        internal static Attachable Upload(ServiceContext context, Attachable attachable, System.IO.Stream stream)
        {
            //Initializing the Dataservice object with ServiceContext
            DataService.DataService service = new DataService.DataService(context);

            Attachable uploaded = service.Upload(attachable, stream);

            return(uploaded);
        }
Пример #25
0
        internal static T Delete <T>(ServiceContext context, T entity) where T : IEntity
        {
            //Initializing the Dataservice object with ServiceContext
            DataService.DataService service = new DataService.DataService(context);

            //Deleting the Bill using the service
            T deleted = service.Delete <T>(entity);

            return(deleted);
        }
Пример #26
0
        /// <summary>
        /// 得到用户数据使用日志
        /// </summary>
        /// <returns></returns>
        public DataTable GetLogDataLog()
        {
            string strSql = string.Format("select a.usercode,a.name as username,b.ip,b.mac,b.operationdate,b.datatype,b.data,b.operation,b.sql from sysuser a,syslogdatalog b where a.usercode=b.usercode");

            DataService.DataService dCurService = new DataService.DataService();

            DataTable dTable = dCurService.GetTable(strSql);

            return(dTable);
        }
Пример #27
0
        internal static T Update <T>(ServiceContext context, T entity) where T : IEntity
        {
            //initializing the dataservice object with servicecontext
            DataService.DataService service = new DataService.DataService(context);

            //updating the entity
            T updated = service.Update <T>(entity);

            return(updated);
        }
Пример #28
0
        /// <summary>
        /// 得到用户数据日志用户组
        /// </summary>
        /// <returns></returns>
        public DataTable GetUsersFromDataLog()
        {
            string strSql = string.Format("select distinct b.usercode,a.name as UserName From sysuser a,syslogdatalog b where a.usercode=b.usercode");

            DataService.DataService dCurService = new DataService.DataService();

            DataTable dTable = dCurService.GetTable(strSql);

            return(dTable);
        }
Пример #29
0
        /// <summary>
        /// 条件过滤得到用户登陆日志
        /// </summary>
        /// <returns></returns>
        public DataTable GetLogUserLogin(string szFilter)
        {
            string strSql = string.Format("select b.usercode,a.name as UserName,b.ip,b.mac,b.logintime from sysuser a,sysloguserlogin b where a.usercode=b.usercode") + " and  " + szFilter;

            DataService.DataService dCurService = new DataService.DataService();

            DataTable dTable = dCurService.GetTable(strSql);

            return(dTable);
        }
Пример #30
0
        /// <summary>
        /// 得到用户数据日志MAC地址组
        /// </summary>
        /// <returns></returns>
        public DataTable GetUserDataTypeFromDataLog()
        {
            string strSql = string.Format("select distinct DATATYPE From syslogdatalog ");

            DataService.DataService dCurService = new DataService.DataService();

            DataTable dTable = dCurService.GetTable(strSql);

            return(dTable);
        }