Exemple #1
0
        static ConfigManger()
        {
            _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey);
            if (_dbBaseProvider == null)
            {
                //todo is expired format

                /*
                 * string providerType = ConfigUtils.GetSetting("PayDB_ProviderType");
                 * string connectionFormat = ConfigUtils.GetSetting("PayDB_ConnectionString");
                 * string dataSource = string.Empty;
                 * string userInfo = string.Empty;
                 * try
                 * {
                 *  dataSource = ConfigUtils.GetSetting("PayDB_Server");
                 *  userInfo = ConfigUtils.GetSetting("PayDB_Acount");
                 *  if (!string.IsNullOrEmpty(userInfo))
                 *  {
                 *      userInfo = CryptoHelper.DES_Decrypt(userInfo, GameEnvironment.Setting.ProductDesEnKey);
                 *  }
                 * }
                 * catch (Exception) { }
                 * string connectionString = "";
                 * if (!string.IsNullOrEmpty(dataSource) && !string.IsNullOrEmpty(userInfo))
                 * {
                 *  connectionString = string.Format(connectionFormat, dataSource, userInfo);
                 * }
                 * _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey, providerType, connectionString);
                 */
            }
        }
Exemple #2
0
        private bool SendToDb <T>(T data, EntityPropertyGetFunc <T> getFunc, EnttiyPostColumnFunc <T> postColumnFunc, bool synchronous) where T : ISqlEntity
        {
            if (Equals(data, null))
            {
                return(false);
            }
            SchemaTable    schemaTable = EntitySchemaSet.Get(data.GetType());
            DbBaseProvider dbProvider  = DbConnectionProvider.CreateDbProvider(_connectKey ?? schemaTable.ConnectKey);

            if (dbProvider == null)
            {
                return(false);
            }
            CommandStruct command = GenerateCommand(dbProvider, data, schemaTable, getFunc, postColumnFunc);

            if (command != null)
            {
                bool result = (synchronous
                    ? dbProvider.ExecuteQuery(CommandType.Text, command.Sql, command.Parameters)
                    : dbProvider.ExecuteNonQuery(data.GetMessageQueueId(), CommandType.Text, command.Sql, command.Parameters)) > 0;
                data.ResetState();
                return(result);
            }
            return(false);
        }
Exemple #3
0
        //private MiddlewareSection section;

        public ServersDataProvider()
        {
            if (_provider == null)
            {
                _provider = DbConnectionProvider.CreateDbProvider(ConnectKey);

                var command = _provider.CreateCommandStruct("StaticServer", CommandMode.Inquiry, "ServerId,Name,Ip,Port");

                command.Parser();

                using (var dr = _provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters))
                {
                    var serversDatas = new ShareCacheStruct <StaticServer>();
                    while (dr.Read())
                    {
                        StaticServer oneServerModel = new StaticServer();
                        oneServerModel.ServerId = Convert.ToInt32(dr["ServerId"]);
                        oneServerModel.Name     = dr["Name"].ToString();
                        oneServerModel.Ip       = dr["Ip"].ToString();
                        oneServerModel.Port     = Convert.ToInt32(dr["Port"]);
                        //ServerList.Add(oneServerModel);
                        serversDatas.Add(oneServerModel);
                    }
                }
                //this.AddATestCache();
            }
        }
        private static void OnCheckDynamicTable(string key, object value, CacheRemovedReason reason)
        {
            try
            {
                DateTime date = DateTime.Now;
                int      logPriorBuildMonth = GetEntitySection().LogPriorBuildMonth;
                var      tableTypes         = _dynamicTables.ToList();
                foreach (var schema in tableTypes)
                {
                    DbBaseProvider dbprovider = DbConnectionProvider.CreateDbProvider(schema);
                    if (dbprovider == null)
                    {
                        continue;
                    }
                    string tableName = "";
                    int    count     = logPriorBuildMonth > 1 ? logPriorBuildMonth : 2;
                    for (int i = 0; i < count; i++)
                    {
                        tableName = schema.GetTableName(date, i);

                        DbColumn[] columns;
                        if (!dbprovider.CheckTable(tableName, out columns))
                        {
                            CreateTableSchema(schema, dbprovider, tableName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("OnCheckLogTable error:{0}", ex);
            }
        }
Exemple #5
0
        /// <summary>
        /// 检测数据表结构变动
        /// </summary>
        /// <param name="schema"></param>
        private static void CheckTableSchema(SchemaTable schema)
        {
            string tableName = schema.GetTableName();

            try
            {
                DbBaseProvider dbprovider = DbConnectionProvider.CreateDbProvider(schema);
                if (dbprovider == null)
                {
                    if (schema.StorageType.HasFlag(StorageType.ReadOnlyDB) ||
                        schema.StorageType.HasFlag(StorageType.ReadWriteDB) ||
                        schema.StorageType.HasFlag(StorageType.WriteOnlyDB))
                    {
                        TraceLog.WriteError("Not found DB connection key \"{1}\" of the {0} entity.", schema.EntityName, schema.ConnectKey);
                    }
                    return;
                }
                DbColumn[] columns;
                if (dbprovider.CheckTable(tableName, out columns))
                {
                    ModifyTableSchema(schema, dbprovider, tableName, columns);
                }
                else
                {
                    CreateTableSchema(schema, dbprovider, tableName);
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("CheckTableSchema {0} error:{1}", tableName, ex);
            }
        }
        private static void CreateTableSchema(SchemaTable schema, DbBaseProvider dbprovider, string tableName)
        {
            var list = new List <DbColumn>();

            foreach (var keypair in schema.Columns)
            {
                var field  = keypair.Value;
                var column = new DbColumn();
                column.Id         = field.Id;
                column.Name       = field.Name;
                column.Type       = field.ColumnType;
                column.Length     = field.ColumnLength;
                column.Scale      = field.ColumnScale;
                column.Isnullable = field.Isnullable;
                column.IsKey      = field.IsKey;
                column.IsUnique   = field.IsUnique;
                column.DbType     = field.DbType.ToString();
                column.IsIdentity = field.IsIdentity;
                column.IdentityNo = field.IdentityNo;
                list.Add(column);
            }
            list.Sort((a, b) => a.Id.CompareTo(b.Id));
            dbprovider.CreateTable(tableName, list.ToArray());
            if (schema.Indexs != null && schema.Indexs.Length > 0)
            {
                dbprovider.CreateIndexs(tableName, schema.Indexs);
            }
        }
Exemple #7
0
 static ConfigManger()
 {
     _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey);
     if (_dbBaseProvider == null)
     {
         string providerType     = ConfigUtils.GetSetting("PayDB_ProviderType");
         string connectionFormat = ConfigUtils.GetSetting("PayDB_ConnectionString");
         string dataSource       = string.Empty;
         string userInfo         = string.Empty;
         try
         {
             dataSource = ConfigUtils.GetSetting("PayDB_Server");
             userInfo   = ConfigUtils.GetSetting("PayDB_Acount");
             if (!string.IsNullOrEmpty(userInfo))
             {
                 userInfo = CryptoHelper.DES_Decrypt(userInfo, GameEnvironment.Setting.ProductDesEnKey);
             }
         }
         catch (Exception) { }
         string connectionString = "";
         if (!string.IsNullOrEmpty(dataSource) && !string.IsNullOrEmpty(userInfo))
         {
             connectionString = string.Format(connectionFormat, dataSource, userInfo);
         }
         _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey, providerType, connectionString);
     }
 }
Exemple #8
0
        private IDataReader GetReader <T>()
        {
            string sql = string.Empty;

            try
            {
                if (Capacity < 0 || _filter == null || _schema == null)
                {
                    TraceLog.WriteError("The {0} schema config is empty.", typeof(T).FullName);
                    return(null);
                }
                string tableName = _schema.GetTableName();
                if (string.IsNullOrEmpty(tableName))
                {
                    TraceLog.WriteError("The {0} schema table name is empty.", _schema.EntityType.FullName);
                    return(null);
                }

                DbBaseProvider dbprovider = DbConnectionProvider.CreateDbProvider(_schema);
                if (dbprovider == null)
                {
                    TraceLog.WriteError("The {0} ConnectKey:{1} is empty.", _schema.EntityType.FullName, _schema.ConnectKey);
                    return(null);
                }
                var command = dbprovider.CreateCommandStruct(tableName, CommandMode.Inquiry);
                var columns = _schema.GetColumnNames();
                command.Columns = string.Join(",", columns);
                command.OrderBy = (string.IsNullOrEmpty(_filter.OrderColumn) ? _schema.OrderColumn : _filter.OrderColumn) ?? "";
                if (Capacity < int.MaxValue && Capacity > 0)
                {
                    command.Top = Capacity;
                    if (string.IsNullOrEmpty(command.OrderBy))
                    {
                        string orderStr = "";
                        foreach (var key in _schema.Keys)
                        {
                            if (orderStr.Length > 0)
                            {
                                orderStr += ",";
                            }
                            orderStr += string.Format("{0}", dbprovider.FormatName(key));
                        }
                        command.OrderBy = orderStr;
                    }
                }
                command.Filter = dbprovider.CreateCommandFilter();

                command.Filter.Condition = MergerCondition(_filter.Condition, _schema.Condition);
                ParseDataParameter(command.Filter);

                command.Parser();
                sql = command.Sql;
                return(dbprovider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters));
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("DB execute reader sql:\"{0}\" error:{1}", sql, ex);
            }
            return(null);
        }
Exemple #9
0
        private static IDataParameter CreateParameter(DbBaseProvider dbProvider, string columnName, ColumnDbType dbType, object value)
        {
            IDataParameter parameter;

            switch (dbType)
            {
            case ColumnDbType.UniqueIdentifier:
                parameter = dbProvider.CreateParameterByGuid(columnName, (Guid)value);
                break;

            case ColumnDbType.LongText:
                parameter = dbProvider.CreateParameterByLongText(columnName, value);
                break;

            case ColumnDbType.Text:
                parameter = dbProvider.CreateParameterByText(columnName, value);
                break;

            case ColumnDbType.LongBlob:
                parameter = dbProvider.CreateParameterLongBlob(columnName, value);
                break;

            case ColumnDbType.Blob:
                parameter = dbProvider.CreateParameterByBlob(columnName, value);
                break;

            default:
                parameter = dbProvider.CreateParameter(columnName, value);
                break;
            }
            return(parameter);
        }
Exemple #10
0
        private bool SendToDb <T>(T data, EntityPropertyGetFunc <T> getFunc, EnttiyPostColumnFunc <T> postColumnFunc, bool synchronous) where T : ISqlEntity
        {
            if (Equals(data, null))
            {
                return(false);
            }
            SchemaTable    schemaTable = EntitySchemaSet.Get(data.GetType());
            DbBaseProvider dbProvider  = DbConnectionProvider.CreateDbProvider(_connectKey ?? schemaTable.ConnectKey);

            if (dbProvider == null)
            {
                return(false);
            }
            CommandStruct command = GenerateCommand(dbProvider, data, schemaTable, getFunc, postColumnFunc);

            if (command != null)
            {
                int result;
                if (synchronous)
                {
                    //同时采集
                    ProfileManager.PostSqlOfMessageQueueTimes(command.TableName, 1);
                    ProfileManager.ProcessSqlOfMessageQueueTimes(command.TableName);
                    result = dbProvider.ExecuteQuery(CommandType.Text, command.Sql, command.Parameters);
                }
                else
                {
                    //put into pool
                    result = dbProvider.ExecuteNonQuery(data.GetMessageQueueId(), CommandType.Text, command.TableName, command.Sql, command.Parameters);
                }
                data.ResetState();
                return(result > 0);
            }
            return(false);
        }
Exemple #11
0
 static ConnectManager()
 {
     _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey);
     if (_dbBaseProvider == null)
     {
         string providerType = ConfigUtils.GetSetting("Snscenter_ProviderType");
         string connectionFormat = ConfigUtils.GetSetting("Snscenter_ConnectionString");
         string dataSource = string.Empty;
         string userInfo = string.Empty;
         try
         {
             dataSource = ConfigUtils.GetSetting("Snscenter_Server");
             userInfo = ConfigUtils.GetSetting("Snscenter_Acount");
             if (!string.IsNullOrEmpty(userInfo))
             {
                 userInfo = CryptoHelper.DES_Decrypt(userInfo, GameEnvironment.Setting.ProductDesEnKey);
             }
         }
         catch (Exception)
         {
         }
         string connectionString = "";
         if (!string.IsNullOrEmpty(dataSource) && !string.IsNullOrEmpty(userInfo))
         {
             connectionString = string.Format(connectionFormat, dataSource, userInfo);
         }
         _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey, providerType, connectionString);
     }
 }
Exemple #12
0
        /// <summary>
        /// 检测数据表结构变动
        /// </summary>
        /// <param name="schema"></param>
        private static void CheckTableSchema(SchemaTable schema)
        {
            string tableName = schema.Name;

            try
            {
                DbBaseProvider dbprovider = DbConnectionProvider.CreateDbProvider(schema);
                if (dbprovider == null)
                {
                    return;
                }
                DbColumn[] columns;
                if (dbprovider.CheckTable(tableName, out columns))
                {
                    ModifyTableSchema(schema, dbprovider, tableName, columns);
                }
                else
                {
                    CreateTableSchema(schema, dbprovider, tableName);
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("CheckTableSchema {0} error:{1}", tableName, ex);
            }
        }
        //private MiddlewareSection section;
        public ServersDataProvider()
        {
            if (_provider == null)
            {
                _provider = DbConnectionProvider.CreateDbProvider(ConnectKey);

                var command = _provider.CreateCommandStruct("StaticServer", CommandMode.Inquiry,"ServerId,Name,Ip,Port");

                command.Parser();

                using (var dr = _provider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters))
                {

                    var serversDatas = new ShareCacheStruct<StaticServer>();
                    while (dr.Read())
                    {
                        StaticServer oneServerModel = new StaticServer();
                        oneServerModel.ServerId = Convert.ToInt32(dr["ServerId"]) ;
                        oneServerModel.Name = dr["Name"].ToString();
                        oneServerModel.Ip = dr["Ip"].ToString();
                        oneServerModel.Port = Convert.ToInt32(dr["Port"]);
                        //ServerList.Add(oneServerModel);
                        serversDatas.Add(oneServerModel);

                    }
                }
                //this.AddATestCache();

            }
        }
Exemple #14
0
 public DBProvider(string connKey)
 {
     if (!m_DBs.ContainsKey(connKey))
     {
         m_DBs[connKey] = DbConnectionProvider.CreateDbProvider(connKey);
     }
     m_DB = m_DBs[connKey];
 }
Exemple #15
0
        /// <summary>
        /// 检测数据表结构变动
        /// </summary>
        /// <param name="schema"></param>
        private static IList <Tuple <DbBaseProvider, SchemaTable> > CheckTableSchema(SchemaTable schema)
        {
            string tableName = schema.GetTableName(DateTime.Now);

            try
            {
                if (DbConnectionProvider.Count == 0)
                {
                    //not seting connection.
                    return(null);
                }
                var            dbProviderPools = new List <DbBaseProvider>();
                var            watchList       = new List <Tuple <DbBaseProvider, SchemaTable> >();
                DbBaseProvider dbprovider      = DbConnectionProvider.CreateDbProvider(schema);
                if (dbprovider == null)
                {
                    if (schema.StorageType.HasFlag(StorageType.ReadOnlyDB) ||
                        schema.StorageType.HasFlag(StorageType.ReadWriteDB) ||
                        schema.StorageType.HasFlag(StorageType.WriteOnlyDB))
                    {
                        TraceLog.WriteError("Not found DB connection key \"{1}\" of the {0} entity.", schema.EntityName, schema.ConnectKey);
                    }
                    return(null);
                }
                dbProviderPools.Add(dbprovider);
                //增加从库节点配置
                if (schema.SlaveConnectKeys != null && schema.SlaveConnectKeys.Length > 0)
                {
                    foreach (var connectKey in schema.SlaveConnectKeys)
                    {
                        DbBaseProvider provider = DbConnectionProvider.CreateDbProvider(connectKey);
                        if (provider != null)
                        {
                            dbProviderPools.Add(provider);
                        }
                    }
                }
                foreach (var provider in dbProviderPools)
                {
                    watchList.Add(Tuple.Create(provider, schema));
                    DbColumn[] columns;
                    if (provider.CheckTable(tableName, out columns))
                    {
                        ModifyTableSchema(schema, provider, tableName, columns);
                    }
                    else
                    {
                        CreateTableSchema(schema, provider, tableName);
                    }
                }
                return(watchList);
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("CheckTableSchema {0} error:{1}", tableName, ex);
                return(null);
            }
        }
Exemple #16
0
 public static void Init()
 {
     string connectionString = string.Format("Data Source={0};Database={1};Uid={2};Pwd={3};Pooling=true;",
         AppSetting.Current.Contract.Server,
         AppSetting.Current.Contract.Database,
         AppSetting.Current.Contract.UserId,
         AppSetting.Current.Contract.Password);
     dbProvider = DbConnectionProvider.CreateDbProvider("ContractData", "", connectionString);
     saveTempPath = Path.Combine(MathUtils.RuntimePath, AppSetting.Current.Contract.CaseOutPath);
 }
Exemple #17
0
 private IDataParameter[] ConvertParam(DbBaseProvider dbProvider, SqlParam[] paramList)
 {
     IDataParameter[] list = new IDataParameter[paramList.Length];
     for (int i = 0; i < paramList.Length; i++)
     {
         SqlParam param = paramList[i];
         list[i] = dbProvider.CreateParameter(param.ParamName, param.DbTypeValue, param.Size, param.Value.Value);
     }
     return(list);
 }
Exemple #18
0
        public static void Init()
        {
            string connectionString = string.Format("Data Source={0};Database={1};Uid={2};Pwd={3};Pooling=true;",
                                                    AppSetting.Current.Contract.Server,
                                                    AppSetting.Current.Contract.Database,
                                                    AppSetting.Current.Contract.UserId,
                                                    AppSetting.Current.Contract.Password);

            dbProvider   = DbConnectionProvider.CreateDbProvider("ContractData", "", connectionString);
            saveTempPath = Path.Combine(MathUtils.RuntimePath, AppSetting.Current.Contract.CaseOutPath);
        }
Exemple #19
0
 private void OnSyncSql(object state)
 {
     try
     {
         if (Monitor.TryEnter(syncSqlObject, 1000))
         {
             try
             {
                 TraceLog.ReleaseWrite("Sql waiting to be written to the Redis");
                 while (true)
                 {
                     var list = CacheChangeManager.Current.PopSql(100);
                     if (list.Count == 0)
                     {
                         break;
                     }
                     foreach (var key in list)
                     {
                         string redisKey = key;
                         try
                         {
                             dynamic     entity      = CacheFactory.GetEntityFromRedis(redisKey, true);
                             SchemaTable schemaTable = entity.GetSchema();
                             if (entity != null && schemaTable != null)
                             {
                                 DbBaseProvider dbProvider = DbConnectionProvider.CreateDbProvider(schemaTable);
                                 if (dbProvider != null)
                                 {
                                     DataSyncManager.GetDataSender().Send(entity, false);
                                 }
                             }
                         }
                         catch (Exception e)
                         {
                             TraceLog.WriteError("Sync to db {0} error:{1}", redisKey, e);
                         }
                     }
                 }
             }
             finally
             {
                 Monitor.Exit(syncSqlObject);
             }
         }
     }
     catch (Exception ex)
     {
         TraceLog.WriteError("Sql sync error:{0}", ex);
     }
 }
Exemple #20
0
        /// <summary>
        /// 从数据库恢复
        /// </summary>
        /// <param name="chart">条件</param>
        /// <param name="value">值</param>
        public static void RecoverFromDb(string chart, int value = -2)
        {
            var cacheSet = new GameDataCacheSet <tb_User>();

            if (cacheSet.Count == 0)
            {
                SchemaTable    schema   = EntitySchemaSet.Get <tb_User>();
                DbBaseProvider provider = DbConnectionProvider.CreateDbProvider(schema);
                DbDataFilter   filter   = new DbDataFilter(0);
                filter.Condition = provider.FormatFilterParam("isRobot", chart);
                filter.Parameters.Add("isRobot", value);
                cacheSet.TryRecoverFromDb(filter);//从数据库中恢复数据
            }
        }
Exemple #21
0
        private static void ModifyTableSchema(SchemaTable schema, DbBaseProvider dbprovider, string tableName, DbColumn[] columns)
        {
            var list = new List <DbColumn>();

            foreach (var keypair in schema.Columns)
            {
                string name   = keypair.Value.Name;
                var    column = Array.Find(columns, p => string.Equals(p.Name, name, StringComparison.CurrentCultureIgnoreCase));
                if (column == null)
                {
                    column            = new DbColumn();
                    column.Id         = keypair.Value.Id;
                    column.Name       = name;
                    column.Type       = keypair.Value.ColumnType;
                    column.Length     = keypair.Value.ColumnLength;
                    column.Scale      = keypair.Value.ColumnScale;
                    column.Isnullable = keypair.Value.Isnullable;
                    column.IsKey      = keypair.Value.IsKey;
                    column.DbType     = keypair.Value.DbType.ToString();
                    column.IsIdentity = keypair.Value.IsIdentity;
                    list.Add(column);
                }
                else
                {
                    if ((column.Type == typeof(decimal) && keypair.Value.ColumnScale > 0 && column.Scale != keypair.Value.ColumnScale) ||
                        (!keypair.Value.IsJson &&
                         keypair.Value.ColumnType != typeof(byte[]) &&
                         column.Type != keypair.Value.ColumnType &&
                         keypair.Value.ColumnType.IsEnum && column.Type != typeof(int))
                        )
                    {
                        column.Type       = keypair.Value.ColumnType;
                        column.Length     = keypair.Value.ColumnLength;
                        column.Scale      = keypair.Value.ColumnScale;
                        column.Isnullable = keypair.Value.Isnullable;
                        column.IsKey      = keypair.Value.IsKey;
                        column.DbType     = keypair.Value.DbType.ToString();
                        column.IsModify   = true;
                        list.Add(column);
                    }
                }
            }

            if (list.Count > 0)
            {
                list.Sort((a, b) => a.Id.CompareTo(b.Id));
                dbprovider.CreateColumn(tableName, list.ToArray());
            }
        }
Exemple #22
0
        /// <summary>
        /// Generate sql statement
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <returns></returns>
        internal SqlStatement GenerateSqlQueue <T>(T data) where T : AbstractEntity
        {
            SchemaTable    schemaTable = data.GetSchema();
            DbBaseProvider dbProvider  = DbConnectionProvider.CreateDbProvider(schemaTable.ConnectKey);

            if (dbProvider != null)
            {
                CommandStruct command = GenerateCommand(dbProvider, data, schemaTable, false, null);
                if (command != null)
                {
                    int identityId = data.GetIdentityId();
                    return(dbProvider.GenerateSql(identityId, command));
                }
            }
            return(null);
        }
        /// <summary>
        /// 初始化机哭人队列,MySQLDAL.Model.tb_User 数据
        /// </summary>
        public static void InitiRobotList()
        {
            _robotUserList = new List <tb_User>();

            var cacheSet = new GameDataCacheSet <tb_User>();

            cacheSet.ReLoad();
            if (cacheSet.Count == 0)
            {
                SchemaTable    schema   = EntitySchemaSet.Get <tb_User>();
                DbBaseProvider provider = DbConnectionProvider.CreateDbProvider(schema);
                DbDataFilter   filter   = new DbDataFilter(0);
                filter.Condition = provider.FormatFilterParam("isRobot", "=");
                filter.Parameters.Add("isRobot", 1);

                cacheSet.TryRecoverFromDb(filter);//从数据库中恢复数据
            }
            var            robotIdList = tb_UserEx.GetUserIdListByRobot(1);
            List <tb_User> _userList   = new List <tb_User>(); // List<tb_User> _userList = cacheSet.FindAll();

            if (robotIdList.Any())
            {
                robotIdList.ForEach(t =>
                {
                    tb_User user;
                    cacheSet.TryFindKey(t.ToString(), out user);
                    if (user != null)
                    {
                        _userList.Add(user);
                    }
                });
            }

            //// List<tb_User> _userList = cacheSet.FindAll();
            if (_userList == null || _userList.Count == 0)
            {
                ErrorRecord.Record(" tb_user 中没有机器人,201610231608");
                return;
            }
            //SetWebChartName();
            // var setName = SetWebChartName(_userList);
            // var temp = SetRobotWebChartImg(_userList);
            // ModifyFileName();
            // cacheSet.AddOrUpdate(setName);
            //cacheSet.Update();
            _robotUserList.AddRange(_userList);
        }
Exemple #24
0
        /// <summary>
        /// Generate sql statement
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <param name="getFunc"></param>
        /// <param name="postColumnFunc"></param>
        /// <returns></returns>
        internal SqlStatement GenerateSqlQueue <T>(T data, EntityPropertyGetFunc <T> getFunc = null, EnttiyPostColumnFunc <T> postColumnFunc = null) where T : ISqlEntity
        {
            SchemaTable    schemaTable = EntitySchemaSet.Get(data.GetType());
            DbBaseProvider dbProvider  = DbConnectionProvider.CreateDbProvider(schemaTable.ConnectKey);

            if (dbProvider != null)
            {
                //process all columns.
                CommandStruct command = GenerateCommand(dbProvider, data, schemaTable, getFunc, postColumnFunc);
                if (command != null)
                {
                    var identityId = data.GetMessageQueueId();
                    return(dbProvider.GenerateSql(identityId, command));
                }
            }
            return(null);
        }
Exemple #25
0
        public static tb_User GetFromCachebyUserID(int UserID)
        {
            var     cacheSet  = new PersonalCacheStruct <tb_User>();
            tb_User _tempuser = cacheSet.Find(UserID.ToString(), t => t.UserID == UserID);

            if (cacheSet.Count == 0 || _tempuser == null)
            {
                SchemaTable    schema   = EntitySchemaSet.Get <tb_User>();
                DbBaseProvider provider = DbConnectionProvider.CreateDbProvider(schema);
                DbDataFilter   filter   = new DbDataFilter(0);
                filter.Condition = provider.FormatFilterParam("UserId");
                filter.Parameters.Add("UserId", UserID);
                cacheSet.TryRecoverFromDb(filter);//从数据库中恢复数据
            }
            _tempuser = cacheSet.Find(UserID.ToString(), t => t.UserID == UserID);

            return(_tempuser);
        }
Exemple #26
0
 public static void Init()
 {
     var dbType = AppSetting.Current.Contract.DBType;
     string connectionString = string.Format("Data Source={0};Database={1};Uid={2};Pwd={3};",
         dbType == DBType.SQL && AppSetting.Current.Contract.Port > 0
         ? AppSetting.Current.Contract.Server + "," + AppSetting.Current.Contract.Port
         : AppSetting.Current.Contract.Server,
         AppSetting.Current.Contract.Database,
         AppSetting.Current.Contract.UserId,
         AppSetting.Current.Contract.Password);
     if (dbType == DBType.MySql && AppSetting.Current.Contract.Port > 0)
     {
         connectionString += string.Format("Port={0};", AppSetting.Current.Contract.Port);
     }
     string privodeType = AppSetting.Current.Contract.DBType == DBType.MySql ? "MySqlDataProvider" : "";
     dbProvider = DbConnectionProvider.CreateDbProvider("ContractData", privodeType, connectionString);
     saveTempPath = Path.Combine(MathUtils.RuntimePath, AppSetting.Current.Contract.CaseOutPath);
 }
Exemple #27
0
        public static tb_Notice GetLastNotice()
        {
            var notice        = new tb_Notice();
            var cacheSettable = new ShareCacheStruct <tb_Notice>();

            cacheSettable.ReLoad();

            notice = cacheSettable.Find(w => w.isStart == 1);
            if (notice == null)
            {
                SchemaTable    schema   = EntitySchemaSet.Get <tb_Notice>();
                DbBaseProvider provider = DbConnectionProvider.CreateDbProvider(schema);
                DbDataFilter   filter   = new DbDataFilter(0);
                filter.Condition = provider.FormatFilterParam("isStart");
                filter.Parameters.Add("isStart", 1);
                cacheSettable.TryRecoverFromDb(filter);//从数据库中恢复数据
                notice = cacheSettable.Find(w => w.isStart == 1);
            }
            return(notice);
        }
        public static void Init()
        {
            var    dbType           = AppSetting.Current.Contract.DBType;
            string connectionString = string.Format("Data Source={0};Database={1};Uid={2};Pwd={3};",
                                                    dbType == DBType.SQL && AppSetting.Current.Contract.Port > 0
                ? AppSetting.Current.Contract.Server + "," + AppSetting.Current.Contract.Port
                : AppSetting.Current.Contract.Server,
                                                    AppSetting.Current.Contract.Database,
                                                    AppSetting.Current.Contract.UserId,
                                                    AppSetting.Current.Contract.Password);

            if (dbType == DBType.MySql && AppSetting.Current.Contract.Port > 0)
            {
                connectionString += string.Format("Port={0};", AppSetting.Current.Contract.Port);
            }
            string privodeType = AppSetting.Current.Contract.DBType == DBType.MySql ? "MySqlDataProvider" : "";

            dbProvider   = DbConnectionProvider.CreateDbProvider("ContractData", privodeType, connectionString);
            saveTempPath = Path.Combine(MathUtils.RuntimePath, AppSetting.Current.Contract.CaseOutPath);
        }
Exemple #29
0
        private void UpdateToDb <T>(T data, bool isChange, string connectKey, EntityBeforeProcess handle) where T : AbstractEntity
        {
            if (data == null)
            {
                return;
            }
            SchemaTable    schemaTable = data.GetSchema();
            DbBaseProvider dbProvider  = DbConnectionProvider.CreateDbProvider(connectKey ?? schemaTable.ConnectKey);

            if (dbProvider == null)
            {
                return;
            }
            CommandStruct command = GenerateCommand(dbProvider, data, schemaTable, isChange, handle);

            if (command != null)
            {
                dbProvider.ExecuteNonQuery(data.GetIdentityId(), CommandType.Text, command.Sql, command.Parameters);
                data.OnUnNew();
            }
        }
Exemple #30
0
        private static void CreateTableSchema(SchemaTable schema, DbBaseProvider dbprovider, string tableName)
        {
            var list = new List <DbColumn>();

            foreach (var keypair in schema.Columns)
            {
                var column = new DbColumn();
                column.Id         = keypair.Value.Id;
                column.Name       = keypair.Value.Name;
                column.Type       = keypair.Value.ColumnType;
                column.Length     = keypair.Value.ColumnLength;
                column.Scale      = keypair.Value.ColumnScale;
                column.Isnullable = keypair.Value.Isnullable;
                column.IsKey      = keypair.Value.IsKey;
                column.DbType     = keypair.Value.DbType.ToString();
                column.IsIdentity = keypair.Value.IsIdentity;
                list.Add(column);
            }
            list.Sort((a, b) => a.Id.CompareTo(b.Id));
            dbprovider.CreateTable(tableName, list.ToArray());
        }
Exemple #31
0
        /// <summary>
        /// 获取所有
        /// </summary>
        /// <returns></returns>
        private static DataTable GetUserPrizeList(DbBaseProvider dbProvider, CommandFilter condition, int statIndex, int endIndex)
        {
            var command = dbProvider.CreateCommandStruct("UserTakePrize", CommandMode.Inquiry);

            command.Columns   = "ID,UserID,ObtainNum,EnergyNum,GameCoin,Gold,ExpNum,VipLv,GainBlessing,ItemPackage,CrystalPackage,SparePackage,EnchantPackage,MailContent,IsTasked,TaskDate,OpUserID,CreateDate,HonourNum,Items";
            command.FromIndex = statIndex;
            command.ToIndex   = endIndex;
            command.OrderBy   = "ID DESC";
            command.Filter    = condition;
            command.Parser();

            DataTable dt = new DataTable();

            using (var reader = dbProvider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters))
            {
                DataColumn col;
                DataRow    row;

                for (int i = 0; i < reader.FieldCount; i++)
                {
                    col            = new DataColumn();
                    col.ColumnName = reader.GetName(i);
                    dt.Columns.Add(col);
                }

                while (reader.Read())
                {
                    row = dt.NewRow();
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        string colName = dt.Columns[i].ColumnName;
                        row[colName] = reader[colName].ToString();
                    }
                    dt.Rows.Add(row);
                }
            }

            return(dt);
        }
Exemple #32
0
        private static void OnCheckLogTable(string key, object value, CacheRemovedReason reason)
        {
            try
            {
                var tableTypes = _logTables.ToList();
                foreach (var type in tableTypes)
                {
                    SchemaTable schema;
                    if (!SchemaSet.TryGetValue(type, out schema))
                    {
                        continue;
                    }
                    DbBaseProvider dbprovider = DbConnectionProvider.CreateDbProvider(schema);
                    if (dbprovider == null)
                    {
                        continue;
                    }
                    string tableName = "";
                    string format    = "";
                    for (int i = 0; i < LogPriorBuildMonth; i++)
                    {
                        int month = i;
                        format    = LogTableNameFormat.Replace("$date", DateTime.Now.AddMonths(month).ToString("yyyyMM"));
                        tableName = string.Format(format, schema.SpecialName);

                        DbColumn[] columns;
                        if (!dbprovider.CheckTable(tableName, out columns))
                        {
                            CreateTableSchema(schema, dbprovider, tableName);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("OnCheckLogTable error:{0}", ex);
            }
        }
Exemple #33
0
 static DbDataLoader()
 {
     _dbBaseProvider = DbConnectionProvider.CreateDbProvider("Contract");
     _dbBaseProvider.CheckConnect();
 }
Exemple #34
0
        private static void ModifyTableSchema(SchemaTable schema, DbBaseProvider dbprovider, string tableName, DbColumn[] columns)
        {
            var list = new List <DbColumn>();

            foreach (var keypair in schema.Columns)
            {
                var    field    = keypair.Value;
                string name     = field.Name;
                var    dbColumn = Array.Find(columns, p => MathUtils.IsEquals(p.Name, name, true));
                if (dbColumn == null)
                {
                    dbColumn            = new DbColumn();
                    dbColumn.Id         = field.Id;
                    dbColumn.Name       = name;
                    dbColumn.Type       = field.ColumnType;
                    dbColumn.Length     = field.ColumnLength;
                    dbColumn.Scale      = field.ColumnScale;
                    dbColumn.Isnullable = field.Isnullable;
                    dbColumn.IsKey      = field.IsKey;
                    dbColumn.IsUnique   = field.IsUnique;
                    dbColumn.DbType     = field.DbType.ToString();
                    dbColumn.IsIdentity = field.IsIdentity;
                    dbColumn.IdentityNo = field.IdentityNo;
                    list.Add(dbColumn);
                }
                else
                {
                    var fieldType = field.ColumnType;
                    //no modify type: text,blob,byte[], enum,list,dict
                    if (
                        //对象序列化类型
                        (field.IsSerialized &&
                         (
                             (field.DbType == ColumnDbType.Varchar && (dbColumn.Type != typeof(string) || (field.ColumnLength > 0 && dbColumn.Length != field.ColumnLength))) ||
                             (field.DbType != ColumnDbType.Varchar && (dbColumn.Type != typeof(string) || dbColumn.DbType.StartsWith("varchar")))
                         )
                        ) ||
                        //特殊值类型
                        (dbColumn.Type == typeof(decimal) && field.ColumnScale > 0 && dbColumn.Scale != field.ColumnScale) ||
                        (fieldType.IsEnum && dbColumn.Type != typeof(int)) ||
                        (fieldType == typeof(ushort) && dbColumn.Type != typeof(short)) ||
                        (fieldType == typeof(uint) && dbColumn.Type != typeof(int)) ||
                        (fieldType == typeof(ulong) && dbColumn.Type != typeof(long)) ||
                        (fieldType == typeof(string) && field.ColumnLength > 0 && dbColumn.Length != field.ColumnLength) ||
                        //非对象类型
                        (!field.IsSerialized &&
                         !fieldType.IsEnum &&
                         !field.IsDictionary &&
                         !field.IsList &&
                         fieldType != typeof(byte[]) &&
                         fieldType != typeof(ushort) &&
                         fieldType != typeof(uint) &&
                         fieldType != typeof(ulong) &&
                         dbColumn.Type != fieldType
                        ) ||
                        //check key
                        ((field.IsKey && dbColumn.KeyNo == 0) || (!field.IsKey && dbColumn.KeyNo > 0))
                        )
                    {
                        dbColumn.Type       = fieldType;
                        dbColumn.Length     = field.ColumnLength;
                        dbColumn.Scale      = field.ColumnScale;
                        dbColumn.Isnullable = field.Isnullable;
                        dbColumn.IsKey      = field.IsKey;
                        dbColumn.DbType     = field.DbType.ToString();
                        dbColumn.IsIdentity = field.IsIdentity;
                        dbColumn.IdentityNo = field.IdentityNo;
                        dbColumn.IsModify   = true;
                        list.Add(dbColumn);
                    }
                }
            }

            if (list.Count > 0)
            {
                list.Sort((a, b) => a.Id.CompareTo(b.Id));
                dbprovider.CreateColumn(tableName, list.ToArray());
            }
        }
Exemple #35
0
 private static IDataParameter[] ToSqlParameter(DbBaseProvider dbProvider, SqlParam[] paramList)
 {
     IDataParameter[] list = new IDataParameter[paramList.Length];
     for (int i = 0; i < paramList.Length; i++)
     {
         SqlParam param = paramList[i];
         list[i] = dbProvider.CreateParameter(param.ParamName, param.DbTypeValue, param.Size, param.Value.Value);
     }
     return list;
 }
        /// <summary>
        /// 获取所有
        /// </summary>
        /// <returns></returns>
        private static DataTable GetUserPrizeList(DbBaseProvider dbProvider, CommandFilter condition, int statIndex, int endIndex)
        {
            var command = dbProvider.CreateCommandStruct("UserTakePrize", CommandMode.Inquiry);
            command.Columns = "ID,UserID,ObtainNum,EnergyNum,GameCoin,Gold,ExpNum,VipLv,GainBlessing,ItemPackage,CrystalPackage,SparePackage,EnchantPackage,MailContent,IsTasked,TaskDate,OpUserID,CreateDate,HonourNum,Items";
            command.FromIndex = statIndex;
            command.ToIndex = endIndex;
            command.OrderBy = "ID DESC";
            command.Filter = condition;
            command.Parser();

            DataTable dt = new DataTable();
            using (var reader = dbProvider.ExecuteReader(CommandType.Text, command.Sql, command.Parameters))
            {
                DataColumn col;
                DataRow row;

                for (int i = 0; i < reader.FieldCount; i++)
                {
                    col = new DataColumn();
                    col.ColumnName = reader.GetName(i);
                    dt.Columns.Add(col);
                }

                while (reader.Read())
                {
                    row = dt.NewRow();
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        string colName = dt.Columns[i].ColumnName;
                        row[colName] = reader[colName].ToString();
                    }
                    dt.Rows.Add(row);
                }

            }

            return dt;
        }
Exemple #37
0
 static DbDataLoader()
 {
     _dbBaseProvider = DbConnectionProvider.CreateDbProvider("Contract");
 }
Exemple #38
0
 static ConnectManager()
 {
     _dbBaseProvider = DbConnectionProvider.CreateDbProvider(ConnectKey);
    
 }