/// <summary> /// 根据系统名称查询客户端白名单 /// </summary> /// <param name="systemName"></param> /// <returns></returns> public async Task <ClientWhitelist> QueryBySystemName(string systemName) { ClientWhitelist result = null; await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionFactory.CreateReadForWhitelistPolicy(), async (conn, transaction) => { SqlTransaction sqlTran = null; if (transaction != null) { sqlTran = (SqlTransaction)transaction; } using (SqlCommand commond = new SqlCommand() { Connection = (SqlConnection)conn, CommandType = CommandType.Text, CommandText = string.Format(@"select {0} from [ClientWhiteList] where [systemname]=@systemname", StoreHelper.GetClientWhitelistStoreSelectFields(string.Empty)), Transaction = sqlTran }) { var parameter = new SqlParameter("@systemname", SqlDbType.NVarChar, 500) { Value = systemName }; commond.Parameters.Add(parameter); commond.Prepare(); SqlDataReader reader = null; using (reader = await commond.ExecuteReaderAsync()) { if (await reader.ReadAsync()) { result = new ClientWhitelist(); StoreHelper.SetClientWhitelistStoreSelectFields(result, reader, string.Empty); } reader.Close(); } } }); return(result); }
/// <summary> /// 分页查询匹配系统名称客户端白名单 /// </summary> /// <param name="page"></param> /// <param name="pageSize"></param> /// <param name="systemName"></param> /// <returns></returns> public async Task <QueryResult <ClientWhitelist> > QueryByPage(int page, int pageSize, string systemName) { QueryResult <ClientWhitelist> result = new QueryResult <ClientWhitelist>(); await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionFactory.CreateReadForWhitelistPolicy(), async (conn, transaction) => { SqlTransaction sqlTran = null; if (transaction != null) { sqlTran = (SqlTransaction)transaction; } using (SqlCommand commond = new SqlCommand() { Connection = (SqlConnection)conn, CommandType = CommandType.Text, CommandText = string.Format(@"SET @currentpage = @page; SELECT @count = COUNT(*) FROM [ClientWhiteList] WHERE [systemname] LIKE @systemname; IF @pagesize * @page >= @count BEGIN SET @currentpage = @count / @pagesize; IF @count % @pagesize <> 0 BEGIN SET @currentpage = @currentpage + 1; END; IF @currentpage = 0 SET @currentpage = 1; END; ELSE IF @page < 1 BEGIN SET @currentpage = 1; END; SELECT {0} FROM [ClientWhiteList] WHERE [systemname] LIKE @systemname ORDER BY sequence OFFSET (@pagesize * (@currentpage - 1)) ROWS FETCH NEXT @pagesize ROWS ONLY;", StoreHelper.GetClientWhitelistStoreSelectFields(string.Empty)), Transaction = sqlTran }) { var parameter = new SqlParameter("@page", SqlDbType.Int) { Value = page }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@pagesize", SqlDbType.Int) { Value = pageSize }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@count", SqlDbType.Int) { Direction = ParameterDirection.Output }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@currentpage", SqlDbType.Int) { Direction = ParameterDirection.Output }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@systemname", SqlDbType.NVarChar, 100) { Value = $"{systemName.ToSqlLike()}%" }; commond.Parameters.Add(parameter); commond.Prepare(); SqlDataReader reader = null; using (reader = await commond.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { var clientWhitelist = new ClientWhitelist(); StoreHelper.SetClientWhitelistStoreSelectFields(clientWhitelist, reader, string.Empty); result.Results.Add(clientWhitelist); } reader.Close(); result.TotalCount = (int)commond.Parameters["@count"].Value; result.CurrentPage = (int)commond.Parameters["@currentpage"].Value; } } }); return(result); }
public async Task <Whitelist> QueryById(Guid id) { Whitelist result = null; await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionFactory.CreateReadForWhitelistPolicy(), async (conn, transaction) => { SqlTransaction sqlTran = null; if (transaction != null) { sqlTran = (SqlTransaction)transaction; } using (SqlCommand commond = new SqlCommand() { Connection = (SqlConnection)conn, CommandType = CommandType.Text, CommandText = string.Format(@"select {0} from WhiteList where [id]=@id", StoreHelper.GetWhitelistSelectFields(string.Empty)), Transaction = sqlTran }) { var parameter = new SqlParameter("@id", SqlDbType.UniqueIdentifier) { Value = id }; commond.Parameters.Add(parameter); commond.Prepare(); SqlDataReader reader = null; using (reader = await commond.ExecuteReaderAsync()) { if (await reader.ReadAsync()) { result = new Whitelist(); StoreHelper.SetWhitelistSelectFields(result, reader, string.Empty); } reader.Close(); } } }); return(result); }
public async Task <Whitelist> QueryBySystemOperationRelation(Guid systemOperationId, string systemName, int status) { Whitelist result = null; await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionFactory.CreateReadForWhitelistPolicy(), async (conn, transaction) => { SqlTransaction sqlTran = null; if (transaction != null) { sqlTran = (SqlTransaction)transaction; } using (SqlCommand commond = new SqlCommand() { Connection = (SqlConnection)conn, CommandType = CommandType.Text, CommandText = string.Format(@"select {0} from WhiteList as w join SystemOperationWhiteListRelation as r on w.id=r.whitelistid where r.systemoperationid=@systemoperationid and w.systemname=@whitelistsystemname and w.status=@status", StoreHelper.GetWhitelistSelectFields("w")), Transaction = sqlTran }) { var parameter = new SqlParameter("@systemoperationid", SqlDbType.UniqueIdentifier) { Value = systemOperationId }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@whitelistsystemname", SqlDbType.NVarChar, 500) { Value = systemName }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@status", SqlDbType.Int) { Value = status }; commond.Parameters.Add(parameter); commond.Prepare(); SqlDataReader reader = null; using (reader = await commond.ExecuteReaderAsync()) { if (await reader.ReadAsync()) { result = new Whitelist(); StoreHelper.SetWhitelistSelectFields(result, reader, "w"); } } } }); return(result); }
public async Task <QueryResult <Whitelist> > QueryByPage(int page, int pageSize) { QueryResult <Whitelist> result = new QueryResult <Whitelist>(); await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionFactory.CreateReadForWhitelistPolicy(), async (conn, transaction) => { SqlTransaction sqlTran = null; if (transaction != null) { sqlTran = (SqlTransaction)transaction; } using (SqlCommand commond = new SqlCommand() { Connection = (SqlConnection)conn, CommandType = CommandType.Text, CommandText = string.Format(@"set @currentpage=@page select @count= count(*) from WhiteList if @pagesize*@page>=@count begin set @currentpage= @count/@pagesize if @count%@pagesize<>0 begin set @currentpage=@currentpage+1 end if @currentpage=0 set @currentpage=1 end else if @page<1 begin set @currentpage=1 end select {0} from WhiteList order by sequence offset (@pagesize * (@currentpage - 1)) rows fetch next @pagesize rows only;" , StoreHelper.GetWhitelistSelectFields(string.Empty)), Transaction = sqlTran }) { var parameter = new SqlParameter("@page", SqlDbType.Int) { Value = page }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@pagesize", SqlDbType.Int) { Value = pageSize }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@count", SqlDbType.Int) { Direction = ParameterDirection.Output }; commond.Parameters.Add(parameter); parameter = new SqlParameter("@currentpage", SqlDbType.Int) { Direction = ParameterDirection.Output }; commond.Parameters.Add(parameter); commond.Prepare(); SqlDataReader reader = null; using (reader = await commond.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { var whitelist = new Whitelist(); StoreHelper.SetWhitelistSelectFields(whitelist, reader, string.Empty); result.Results.Add(whitelist); } reader.Close(); result.TotalCount = (int)commond.Parameters["@count"].Value; result.CurrentPage = (int)commond.Parameters["@currentpage"].Value; } } }); return(result); }