コード例 #1
0
        /// <summary>
        /// 同步省市区数据
        /// </summary>
        /// <param name="delete"></param>
        /// <returns></returns>
        public static int SynchronousArea(bool delete = false)
        {
            int result = 0;

            if (!System.IO.File.Exists(SqLiteDb))
            {
                return(result);
            }

            DateTime?modifiedOn = new DateTime(2014, 01, 01);

            string dbConnection = "Data Source={StartupPath}/DataBase/STO.Bill.db;Pooling=true;FailIfMissing=false;Password=ZTO20149988";

            dbConnection = dbConnection.Replace("{StartupPath}", System.Windows.Forms.Application.StartupPath);
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(CurrentDbType.SQLite, dbConnection))
            {
                BaseParameterManager parameterManager = new BaseParameterManager(dbHelper, BaseSystemInfo.UserInfo, BaseParameterEntity.TableName);
                var tableName = BaseAreaEntity.TableName;

                if (!delete)
                {
                    var synchronous = parameterManager.GetParameter(BaseParameterEntity.TableName, "System", tableName, "Synchronous");
                    if (!string.IsNullOrEmpty(synchronous))
                    {
                        modifiedOn = DateTime.Parse(synchronous);
                    }
                }

                if (delete)
                {
                    dbHelper.ExecuteNonQuery("DELETE FROM " + tableName);
                }
                result = SynchronousTable("UserCenter", tableName, new string[] { BaseAreaEntity.FieldId }, modifiedOn, "Bill", tableName, 20000, false);
                if (result > 0)
                {
                    parameterManager.SetParameter(BaseParameterEntity.TableName, "System", tableName, "Synchronous", DateTime.Now.ToString(BaseSystemInfo.DateTimeFormat));
                }
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 设置参数值
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="categoryId">分类主键</param>
        /// <param name="parameterId">参数主键</param>
        /// <param name="parameterCode">参数编号</param>
        /// <param name="parameterContent">参数内容</param>
        /// <returns>影响行数</returns>
        public int SetParameter(BaseUserInfo userInfo, string categoryId, string parameterId, string parameterCode, string parameterContent)
        {
            // 写入调试信息
            #if (DEBUG)
            int milliStart = BaseBusinessLogic.StartDebug(userInfo, MethodBase.GetCurrentMethod());
            #endif

            // 加强安全验证防止未授权匿名调用
            #if (!DEBUG)
            LogOnService.UserIsLogOn(userInfo);
            #endif

            int returnValue = 0;
            using (IDbHelper dbHelper = DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
            {
                try
                {
                    dbHelper.Open(UserCenterDbConnection);
                    BaseParameterManager parameterManager = new BaseParameterManager(dbHelper, userInfo);
                    returnValue = parameterManager.SetParameter(categoryId, parameterId, parameterCode, parameterContent);
                    BaseLogManager.Instance.Add(dbHelper, userInfo, this.serviceName, AppMessage.ParameterService_SetParameter, MethodBase.GetCurrentMethod());
                }
                catch (Exception ex)
                {
                    BaseExceptionManager.LogException(dbHelper, userInfo, ex);
                    throw ex;
                }
                finally
                {
                    dbHelper.Close();
                }
            }

            // 写入调试信息
            #if (DEBUG)
            BaseBusinessLogic.EndDebug(MethodBase.GetCurrentMethod(), milliStart);
            #endif

            return(returnValue);
        }
コード例 #3
0
        /// <summary>
        /// 登录前运行的方法
        /// </summary>
        public static void BeforeLogOn()
        {
            // 0:若文件不存在,就退出数据同步,不进行数据同步
            string sqLiteDb = System.Windows.Forms.Application.StartupPath + @"\DataBase\STO.Bill.db";

            if (!System.IO.File.Exists(sqLiteDb))
            {
                return;
            }
            try
            {
                // 01:打开业务数据库
                string dbConnection = "Data Source={StartupPath}/DataBase/STO.Bill.db;Pooling=true;FailIfMissing=false;Password=ZTO20149988";
                dbConnection = dbConnection.Replace("{StartupPath}", System.Windows.Forms.Application.StartupPath);
                IDbHelper dbHelper = DbHelperFactory.GetHelper(CurrentDbType.SQLite, dbConnection);
                // 02: 先保存个同步时间标志,什么时间成功同步过本地数据库?这样不用每次都同步所有的数据,只同步那个时间之后的数据就可以了。
                BaseParameterManager parameterManager = new BaseParameterManager(dbHelper, BaseSystemInfo.UserInfo, BaseParameterEntity.TableName);
                // 03:用参数的方式读取同步时间
                // 04:检查数据库里的版本号
                var synchronous = parameterManager.GetParameter("Bill", "DBVersion", "Synchronous");
                if (string.IsNullOrEmpty(synchronous))
                {
                    synchronous = "5.2015.7.15";
                    parameterManager.SetParameter("Bill", "DBVersion", "Synchronous", synchronous);
                }
                var versionEntity = new Version(synchronous);
                if (versionEntity < new Version("5.2015.08.14"))
                {
                    Upgrade20150814();
                }
                if (versionEntity < new Version("5.2015.08.21"))
                {
                    Upgrade20150821();
                }
                if (versionEntity < new Version("5.2015.08.23"))
                {
                    if (Upgrade20150823())
                    {
                        //  InitExpressData();
                    }
                }
                if (versionEntity < new Version("5.2015.08.26"))
                {
                    if (Upgrade20150826())
                    {
                        if (Upgrade20150823())
                        {
                            // InitExpressData();
                            parameterManager.SetParameter(BaseParameterEntity.TableName, "Bill", "DBVersion", "Synchronous", "5.2015.08.26");
                        }
                    }
                }
                if (versionEntity < new Version("5.2015.09.14"))
                {
                    Upgrade20150914();
                }
                if (versionEntity < new Version("5.2015.10.15"))
                {
                    Upgrade20151015();
                }
                if (versionEntity < new Version("5.2015.10.25"))
                {
                    Upgrade20151025();
                }
                if (versionEntity < new Version("5.2015.11.05"))
                {
                    Upgrade20151105();
                }
                if (versionEntity < new Version("5.2015.11.11"))
                {
                    Upgrade20151111();
                }
                if (versionEntity < new Version("5.2015.12.12"))
                {
                    Upgrade20151212();
                }
                if (versionEntity < new Version("5.2016.01.20"))
                {
                    Upgrade20160120();
                }
                if (versionEntity < new Version("6.2016.06.20"))
                {
                    Upgrade20160620();
                }
                if (versionEntity < new Version("6.2016.07.20"))
                {
                    Upgrade20160720();
                }
                //if (versionEntity < new Version("6.2016.03.21"))
                //{
                //    parameterManager.SetParameter(BaseParameterEntity.TableName, "Bill", "DBVersion", "Synchronous", "6.2016.03.21");
                //}
                InitExpressData();
            }
            catch (Exception ex)
            {
                // 在本地记录异常
                LogUtil.WriteException(ex);
            }
        }