/// <summary>判断授权对象是否拥有实体对象的权限信息</summary>
        /// <param name="command">通用SQL命令对象</param>
        /// <param name="scopeTableName">数据表的名称</param>
        /// <param name="entityId">实体标识</param>
        /// <param name="entityClassName">实体类名称</param>
        /// <param name="authorityName">权限名称</param>
        /// <param name="authorizationObjectType">授权对象类型</param>
        /// <param name="authorizationObjectId">授权对象标识</param>
        /// <returns>布尔值</returns>
        public bool HasAuthority(GenericSqlCommand command, string scopeTableName, string entityId, string entityClassName, string authorityName, string authorizationObjectType, string authorizationObjectId)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            AuthorityInfo authority = AuthorityContext.Instance.AuthorityService[authorityName];

            args.Add("ScopeTableName", scopeTableName);
            args.Add("EntityId", entityId);
            args.Add("EntityClassName", entityClassName);
            args.Add("AuthorityId", authority.Id);
            args.Add("AuthorizationObjectType", authorizationObjectType);
            args.Add("AuthorizationObjectId", authorizationObjectId);

            string commandText = null;

            if (authorizationObjectType == "Account")
            {
                commandText = this.ibatisMapper.QueryForCommandText(StringHelper.ToProcedurePrefix(string.Format("{0}_HasAuthorityWithAccount", tableName)), args);
            }
            else
            {
                commandText = this.ibatisMapper.QueryForCommandText(StringHelper.ToProcedurePrefix(string.Format("{0}_HasAuthorityWithAccount", tableName)), args);
            }

            return(((int)command.ExecuteScalar(commandText) == 0) ? false : true);
        }
Пример #2
0
        static string FindApplicationDisplayName(string applicationName)
        {
            GenericSqlCommand command = new GenericSqlCommand("ConnectionString");

            object result = command.ExecuteScalar(" SELECT ApplicationDisplayName FROM tb_Application WHERE ApplicationName = '" + applicationName + "' ");

            return(result == null ? string.Empty : result.ToString());
        }
Пример #3
0
        /// <summary>
        /// 取得数据库名称
        /// </summary>
        /// <returns>数据库名称</returns>
        public string GetDatabaseName()
        {
            GenericSqlCommand command = new GenericSqlCommand(connectionString, "SQLite");

            string commandText = "select database()";

            var result = command.ExecuteScalar(commandText);

            return(result == null ? string.Empty : result.ToString());
        }
Пример #4
0
        /// <summary>根据类别标识成数字编码</summary>
        /// <param name="command">通用SQL命令对象</param>
        /// <param name="entityTableName">实体数据表</param>
        /// <param name="entityCategoryTableName">实体类别数据表</param>
        /// <param name="entityCategoryId">实体类别标识</param>
        /// <param name="expression">规则表达式</param>
        /// <returns>数字编码</returns>
        public string GenerateCodeByCategoryId(GenericSqlCommand command, string entityTableName, string entityCategoryTableName, string entityCategoryId, string expression)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("EntityCategoryTableName", entityCategoryTableName);
            args.Add("EntityCategoryId", entityCategoryId);

            string commandText = this.ibatisMapper.QueryForCommandText(StringHelper.ToProcedurePrefix(string.Format("{0}_GetPrefixCodeByCategoryId", tableName)), args);

            string prefixCode = (string)command.ExecuteScalar(commandText);

            return(GenerateCodeByPrefixCode(entityTableName, prefixCode, expression));
        }
Пример #5
0
        /// <summary>根据前缀生成数字编码</summary>
        /// <param name="command">通用SQL命令对象</param>
        /// <param name="entityTableName">实体数据表</param>
        /// <param name="prefixCode">前缀编号</param>
        /// <param name="expression">规则表达式</param>
        /// <returns>数字编码</returns>
        public string GenerateCodeByPrefixCode(GenericSqlCommand command, string entityTableName, string prefixCode, string expression)
        {
            // 获取前缀
            string prefix = DigitalNumberScript.RunPrefixScript(expression, prefixCode.ToUpper(), DateTime.Now);

            // 根据前缀信息查询当前最大的编号
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("EntityTableName", entityTableName);
            args.Add("Prefix", prefix);

            string commandText = this.ibatisMapper.QueryForCommandText(StringHelper.ToProcedurePrefix(string.Format("{0}_GetMaxSeedByPrefix", tableName)), args);

            int seed = Convert.ToInt32(command.ExecuteScalar(commandText));

            return(DigitalNumberScript.RunScript(expression, prefixCode, DateTime.Now, ref seed));
        }
        /// <summary>分析判断条件SQL</summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="args">参数</param>
        /// <returns>判断条件是否成立</returns>
        public bool AnalyzeConditionSQL(string sql, Dictionary <string, string> args)
        {
            GenericSqlCommand command = new GenericSqlCommand(this.ibatisMapper.DataSource.ConnectionString, this.ibatisMapper.DataSource.DbProvider.Name);

            return((command.ExecuteScalar(CommandType.Text, StringHelper.ToSafeSQL(sql)).ToString() == "0") ? true : false);
        }