/// <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); }
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()); }
/// <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()); }
/// <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)); }
/// <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); }