예제 #1
0
 protected void CheckSqlExecuteType(IConfigSqlInfo sqlInfo, ConfigSqlExecuteType type)
 {
     //如果为NotSure 或 当前执行的类型 那么就通过
     if (!(sqlInfo.Type == ConfigSqlExecuteType.notsure || sqlInfo.Type == type))
     {
         throw new ArgumentException($"The sql type [{_util.GetEnumDescription(sqlInfo.Type, true)}] is not executing type [{_util.GetEnumDescription(type, true)}].");
     }
 }
예제 #2
0
        public void Add(string tableName, string sqlName, IConfigSqlInfo sqlInfo)
        {
            var tconfig  = _tableSqls.GetOrAdd(tableName, new ConfigTableInfo(tableName));
            var modifier = AsModifiers(tconfig, tableName);

            modifier.AddSql(sqlName, sqlInfo);
            OnModified?.Invoke();
        }
예제 #3
0
        public SqlConfigExecutor(ISqlConfigManager sqlConfigMgr, DbContext db,
                                 string tableName, string sqlName, IConfigSqlInfo sqlInfo, IConfigTableInfo tableInfo, string sql,
                                 ISqlExecutor sqlExecutor, ISqlParamConverter sqlParamCvt, IEFCoreExtendUtility util)
        {
            _sqlConfigMgr = sqlConfigMgr;
            _db           = db;
            _sqlInfo      = sqlInfo;
            _tableName    = tableName;
            _sqlName      = sqlName;
            _tableInfo    = tableInfo;
            _sql          = sql;

            _sqlExecutor = sqlExecutor;
            _sqlParamCvt = sqlParamCvt;
            _util        = util;
        }
예제 #4
0
        public bool TryRemove(string tableName, string sqlName, out IConfigSqlInfo sqlInfo)
        {
            sqlInfo = null;
            IConfigTableInfo tconfig;

            if (TableSqlInfos.TryGetValue(tableName, out tconfig))
            {
                var  modifier = AsModifiers(tconfig, tableName);
                bool bRtn     = modifier.TryRemoveSql(sqlName, out sqlInfo);
                if (bRtn)
                {
                    OnModified?.Invoke();
                }
                return(bRtn);
            }
            return(false);
        }
예제 #5
0
        public object GetPolicy(IConfigSqlInfo sqlInfo, IConfigTableInfo tableInfo)
        {
            object tempPolicy = null;

            if (ParameterPolicy != null)
            {
                return(ParameterPolicy);
            }
            else if (sqlInfo.Policies?.TryGetValue(PolicyName, out tempPolicy) == true)
            {
                return(tempPolicy);
            }
            else if (tableInfo.Policies?.TryGetValue(PolicyName, out tempPolicy) == true)
            {
                return(tempPolicy);
            }
            else
            {
                return(GlobalPolicy);
            }
        }
예제 #6
0
        /// <summary>
        /// 获取sql的配置信息
        /// </summary>
        /// <param name="sqlConfig"></param>
        /// <param name="tableName"></param>
        /// <param name="sqlName"></param>
        /// <returns></returns>
        public static IConfigSqlInfo GetSqlInfo(this ISqlConfig sqlConfig, string tableName, string sqlName)
        {
            IConfigTableInfo table;

            if (sqlConfig.TableSqlInfos.TryGetValue(tableName, out table))
            {
                IConfigSqlInfo sqlInfo = null;
                if (table.Sqls.TryGetValue(sqlName, out sqlInfo))
                {
                    return(sqlInfo);
                }
                else
                {
                    throw new ArgumentException($"The key [{sqlName}] does not exist in the {nameof(IConfigSqlInfo)} collection.",
                                                nameof(sqlName));
                }
            }
            else
            {
                throw new ArgumentException($"The key [{tableName}] does not exist in the {nameof(IConfigTableInfo)} collection.",
                                            nameof(tableName));
            }
        }
 public ISqlConfigExecutor Create(ISqlConfigManager sqlConfigMgr, DbContext db,
                                  string tableName, string sqlName, IConfigSqlInfo sqlInfo, IConfigTableInfo tableInfo, string sql)
 {
     return(new SqlConfigExecutor(sqlConfigMgr, db, tableName, sqlName, sqlInfo, tableInfo, sql, _sqlExecutor, _sqlParamCvt, _util));
 }
 /// <summary>
 /// 移除Table的sql
 /// </summary>
 /// <param name="info"></param>
 /// <param name="sqlName"></param>
 /// <param name="sqlInfo"></param>
 /// <returns></returns>
 public static bool TryRemoveSql(this IConfigTableInfoModifier info, string sqlName, out IConfigSqlInfo sqlInfo)
 {
     return(info.Sqls.DictTryRemove(sqlName, out sqlInfo));
 }
        /// <summary>
        /// 添加Table的sql
        /// </summary>
        /// <param name="sqlName"></param>
        /// <param name="sqlInfo"></param>
        public static void AddSql(this IConfigTableInfoModifier info, string sqlName, IConfigSqlInfo sqlInfo)
        {
            sqlName.CheckStringIsNullOrEmpty(nameof(sqlName));
            sqlInfo.CheckNull(nameof(sqlInfo));
            sqlInfo.Sql.CheckStringIsNullOrEmpty($"{nameof(sqlInfo)}.{nameof(sqlInfo.Sql)}");

            info.Sqls.Add(sqlName, sqlInfo);
        }
예제 #10
0
        /// <summary>
        /// 获取Table的配置信息
        /// </summary>
        /// <param name="sqlConfig"></param>
        /// <param name="tableName"></param>
        /// <param name="sqlName"></param>
        /// <param name="sqlInfo"></param>
        /// <returns></returns>
        public static bool TryGetSqlInfo(this ISqlConfig sqlConfig, string tableName, string sqlName, out IConfigSqlInfo sqlInfo)
        {
            sqlInfo = null;
            IConfigTableInfo table;

            if (sqlConfig.TableSqlInfos.TryGetValue(tableName, out table))
            {
                if (table.Sqls.TryGetValue(sqlName, out sqlInfo))
                {
                    return(true);
                }
            }
            return(false);
        }