/// <summary> /// /// </summary> /// <param name="targetID"></param> /// <param name="type"></param> /// <param name="getCount">取最新的前N条 和 最旧的一条</param> /// <param name="isGetAll"></param> /// <returns></returns> public override CommentCollection GetComments(int targetID, CommentType type, int getCount, bool isGetAll) { using (SqlQuery query = new SqlQuery()) { if (isGetAll) { query.CommandText = "SELECT * FROM [bx_Comments] WHERE Type = @Type AND TargetID = @TargetID AND IsApproved = 1 ORDER BY CommentID ASC;"; } else { query.CommandText = @" SELECT TOP(@TopCount) * FROM [bx_Comments] WHERE Type = @Type AND TargetID = @TargetID AND IsApproved = 1 ORDER BY CommentID DESC; SELECT TOP 1 * FROM [bx_Comments] WHERE Type = @Type AND TargetID = @TargetID ORDER BY CommentID ASC; "; query.CreateTopParameter("@TopCount", getCount); } query.CreateParameter <int>("@TargetID", targetID, SqlDbType.Int); query.CreateParameter <int>("@Type", (int)type, SqlDbType.TinyInt); CommentCollection comments = new CommentCollection(); using (XSqlDataReader reader = query.ExecuteReader()) { if (isGetAll) { while (reader.Read()) { comments.Add(new Comment(reader)); } } else { while (reader.Read()) { comments.Insert(0, new Comment(reader)); } if (reader.NextResult()) { while (reader.Read()) { comments.Insert(0, new Comment(reader)); } } } return(comments); } } }
public override UserIPLogCollection GetUserIPLogsByIP(string IP, int pageNumber, int pageSize, out int total) { total = 0; using (SqlQuery query = new SqlQuery()) { query.Pager.IsDesc = true; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.SelectCount = true; query.Pager.TableName = "[bx_IPLogs]"; query.Pager.SortField = "[LogID]"; query.Pager.Condition = " LogID in(SELECT Max(LogID) FROM [bx_IPLogs] WHERE NewIP = @IP GROUP BY UserID) "; query.Pager.AfterExecute = "SELECT * FROM bx_BannedUsers WHERE UserID in(SELECT UserID FROM [bx_IPLogs] WHERE NewIP = @IP GROUP BY UserID)"; //query.CommandText = "SELECT * FROM [bx_IPLogs] LEFT JOIN bx_BannedUsers ON bx_BannedUsers.UserID=bx_IPLogs.UserID WHERE NewIP=@IP"; query.CreateParameter <string>("@IP", IP, SqlDbType.VarChar, 50); using (XSqlDataReader reader = query.ExecuteReader()) { UserIPLogCollection collection = new UserIPLogCollection(reader); if (reader.NextResult()) { while (reader.Read()) { total = reader.GetInt32(0); } } if (reader.NextResult()) { while (reader.Read()) { int userID = reader.Get <int>("UserID"); int forumID = reader.Get <int>("ForumID"); foreach (UserIPLog log in collection) { if (log.UserID == userID) { log.BannedForumID = forumID; } } } } return(collection); } } }
public override bool UpdateUserPayItem(string buyerEmail, string orderNo, string transactionNo, string payIp, DateTime payDate, out int userID) { userID = 0; using (SqlQuery query = new SqlQuery()) { query.CommandType = CommandType.StoredProcedure; query.CommandText = "bx_UpdatePayItem"; query.CreateParameter <string>("@BuyerEmail", buyerEmail, SqlDbType.VarChar, 50); query.CreateParameter <string>("@OrderNo", orderNo, SqlDbType.VarChar, 50); query.CreateParameter <string>("@TransactionNo", transactionNo, SqlDbType.NVarChar, 200); query.CreateParameter <string>("@PayIp", payIp, SqlDbType.VarChar, 50); query.CreateParameter <DateTime>("@PayDate", payDate, SqlDbType.DateTime); SqlParameter returnParam = query.CreateParameter <int>("@ReturnValue", SqlDbType.Int, ParameterDirection.ReturnValue); using (XSqlDataReader reader = query.ExecuteReader()) { if (reader.Read()) { userID = reader.Get <int>(0); } } return((int)returnParam.Value > 0); } }
public override PointShowCollection GetPointShowList(int pageSize, int pageNumber) { using (SqlQuery query = new SqlQuery()) { query.Pager.SortField = "[Price]"; query.Pager.IsDesc = true; query.Pager.PrimaryKey = "[UserID]"; query.Pager.PageSize = pageSize; query.Pager.PageNumber = pageNumber; query.Pager.SelectCount = true; query.Pager.TableName = "bx_PointShows"; using (XSqlDataReader reader = query.ExecuteReader()) { PointShowCollection result = new PointShowCollection(reader); if (reader.NextResult()) { while (reader.Read()) { result.TotalRecords = reader.Get <int>(0); } } return(result); } } }
public override Dictionary <int, ThreadCateModelCollection> GetAllModels() { using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetAllModels"; query.CommandType = CommandType.StoredProcedure; Dictionary <int, ThreadCateModelCollection> models = new Dictionary <int, ThreadCateModelCollection>(); using (XSqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { ThreadCateModel model = new ThreadCateModel(reader); ThreadCateModelCollection tempModels; if (models.TryGetValue(model.CateID, out tempModels) == false) { tempModels = new ThreadCateModelCollection(); tempModels.Add(model); models.Add(model.CateID, tempModels); } else { tempModels.Add(model); } } } return(models); } }
public override Dictionary <int, ThreadCateModelFieldCollection> GetAllThreadCateModelField() { using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetAllThreadCateModelField"; query.CommandType = CommandType.StoredProcedure; Dictionary <int, ThreadCateModelFieldCollection> fields = new Dictionary <int, ThreadCateModelFieldCollection>(); using (XSqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { ThreadCateModelField field = new ThreadCateModelField(reader); ThreadCateModelFieldCollection tempFields; if (fields.TryGetValue(field.ModelID, out tempFields) == false) { tempFields = new ThreadCateModelFieldCollection(); tempFields.Add(field); fields.Add(field.ModelID, tempFields); } else { tempFields.Add(field); } } } return(fields); } }
public override VisitorCollection SelectVisitors(int userID, int pageNumber, int pageSize, out int totalCount) { totalCount = 0; VisitorCollection visitors = new VisitorCollection(); using (SqlQuery query = new SqlQuery()) { query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.SelectCount = true; query.Pager.SortField = "CreateDate"; query.Pager.TableName = "bx_UserVisitors"; query.Pager.Condition = "UserID = @UserID"; query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { visitors = new VisitorCollection(reader); if (reader.NextResult()) { while (reader.Read()) { totalCount = reader.Get <int>(0); } } } } return(visitors); }
public override VisitorCollection GetSpaceVisitors(int spaceOwnerID, int pageSize, int pageNumber) { using (SqlQuery query = new SqlQuery()) { query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.SelectCount = true; query.Pager.SortField = "CreateDate"; query.Pager.PrimaryKey = "[ID]"; query.Pager.TableName = "bx_Visitors"; query.Pager.Condition = "UserID = @UserID"; query.Pager.IsDesc = true; query.CreateParameter <int>("@UserID", spaceOwnerID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { VisitorCollection visitors = new VisitorCollection(reader); if (reader.NextResult()) { if (reader.Read()) { visitors.TotalRecords = reader.Get <int>(0); } } return(visitors); } } }
public override ChatMessageCollection GetLastChatMessages(int userID, int targetUserID, int lastMessageID, int MessageCount) { ChatMessageCollection result; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_Chat_GetLastMessages"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); query.CreateParameter <int>("@TargetUserID", targetUserID, SqlDbType.Int); query.CreateParameter <int>("@LastMessageID", lastMessageID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { result = new ChatMessageCollection(); while (reader.Read()) { result.Insert(0, new ChatMessage(reader)); } } return(result); } }
public override ChatSessionCollection GetChatSessions(int userID, int pageNumber, int pageSize) { ChatSessionCollection results = new ChatSessionCollection(); using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_ChatSessions"; query.Pager.PrimaryKey = "ChatSessionID"; query.Pager.SortField = "UpdateDate"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.IsDesc = true; query.Pager.SelectCount = true; query.Pager.Condition = "UserID = @UserID"; query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { results = new ChatSessionCollection(reader); while (reader.NextResult()) { while (reader.Read()) { results.TotalRecords = reader.Get <int>(00); } } } } return(results); }
public override ChatMessageCollection SendMessage(int userID, int targetUserID, string content, string ip, bool getNewMessages, int lastMessageID) { ChatMessageCollection messages = new ChatMessageCollection(); using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_Chat_SendMessage"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); query.CreateParameter <int>("@TargetUserID", targetUserID, SqlDbType.Int); query.CreateParameter <string>("@Content", content, SqlDbType.NVarChar, 3000); query.CreateParameter <string>("@CreateIP", ip, SqlDbType.VarChar, 50); query.CreateParameter <bool>("@GetNewMessages", getNewMessages, SqlDbType.Bit); query.CreateParameter <int>("@LastMessageID", lastMessageID, SqlDbType.Int); if (getNewMessages) { using (XSqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { messages.Insert(0, new ChatMessage(reader)); } } } else { query.ExecuteNonQuery(); } } return(messages); }
public override Vars GetVars() { Vars stat = null; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetVars"; query.CommandType = CommandType.StoredProcedure; using (XSqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { stat = new Vars(reader); } } } if (stat == null) { stat = UpdateNewUserStat(); } return(stat); }
public override Vars UpdateNewUserStat() { Vars stat = null; using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_UpdateNewUserVars"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter <bool>("@GetVars", true, SqlDbType.Bit); using (XSqlDataReader reader = query.ExecuteReader()) { while (reader.Read()) { stat = new Vars(reader); } } } if (stat == null) { stat = new Vars(); stat.NewUserID = 1; stat.NewUsername = "******"; } return(stat); }
/// <summary> /// 获取所有标签 /// </summary> public override TagCollection GetAllTags(int pageNumber, int pageSize, ref int?count) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_Tags"; query.Pager.SortField = "ID"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.TotalRecords = count; query.Pager.IsDesc = true; query.Pager.SelectCount = true; using (XSqlDataReader reader = query.ExecuteReader()) { TagCollection tags = new TagCollection(reader); if (count == null && reader.NextResult()) { if (reader.Read()) { count = reader.Get <int>(0); } } return(tags); } } }
/// <summary> /// 高级搜索 /// </summary> public override NotifyCollection AdminGetNotifiesBySearch(AdminNotifyFilter notifyFilter, int pageNumber, IEnumerable <Guid> excludeRoleIds) { using (SqlQuery query = new SqlQuery()) { StringBuilder condition = FilterToCondition(query, notifyFilter); string exlcludeUserIDs = DaoUtil.GetExcludeRoleSQL("UserID", excludeRoleIds, query); if (!string.IsNullOrEmpty(exlcludeUserIDs)) { condition.Append(" AND " + exlcludeUserIDs); } query.Pager.IsDesc = true; query.Pager.TableName = "[bx_Notify]"; query.Pager.SortField = "[NotifyID]"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = notifyFilter.PageSize; query.Pager.SelectCount = true; query.Pager.Condition = condition.ToString(); using (XSqlDataReader reader = query.ExecuteReader()) { NotifyCollection notifies = new NotifyCollection(reader); if (reader.NextResult()) { if (reader.Read()) { notifies.TotalRecords = reader.Get <int>(0); } } return(notifies); } } }
/// <summary> /// 获取标签 /// </summary> public override TagCollection GetMostTags(bool isLock, int pageNumber, int pageSize, ref int?count) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_Tags"; query.Pager.SortField = "ID"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.TotalRecords = count; query.Pager.IsDesc = true; query.Pager.SelectCount = true; query.Pager.Condition = "[IsLock] = @IsLock"; query.CreateParameter <bool>("@IsLock", isLock, SqlDbType.Bit); using (XSqlDataReader reader = query.ExecuteReader()) { TagCollection tags = new TagCollection(reader); if (count == null && reader.NextResult()) { if (reader.Read()) { count = reader.Get <int>(0); } } return(tags); } } }
public override UserPropCollection GetUserPropsForAdmin(UserPropFilter filter, int pageNumber) { using (SqlQuery db = new SqlQuery()) { db.Pager.TableName = "bx_UserPropsView"; db.Pager.PageSize = filter.PageSize; db.Pager.PageNumber = pageNumber; db.Pager.SelectCount = true; db.Pager.IsDesc = filter.IsDesc; if (filter.Order == UserPropFilter.OrderBy.Count) { db.Pager.SortField = "Count"; db.Pager.PrimaryKey = "UserPropID"; } else { db.Pager.SortField = "UserPropID"; } db.Pager.Condition = BuildCondition(db, filter); using (XSqlDataReader reader = db.ExecuteReader()) { UserPropCollection result = new UserPropCollection(reader); if (reader.NextResult() && reader.Read()) { result.TotalRecords = reader.Get <int>(0); } return(result); } } }
public override UserPropCollection GetSellingUserProps(int pageNumber, int pageSize, ref int?totalCount) { using (SqlQuery db = new SqlQuery()) { db.Pager.TableName = "bx_SellingProps"; db.Pager.PageNumber = pageNumber; db.Pager.PageSize = pageSize; db.Pager.SortField = "SellingDate"; db.Pager.PrimaryKey = "UserPropID"; db.Pager.Condition = @" PropID IN(SELECT PropID FROM bx_Props WHERE Enable = 1) "; if (totalCount != null) { db.Pager.TotalRecords = totalCount; db.Pager.SelectCount = false; } else { db.Pager.SelectCount = true; } using (XSqlDataReader reader = db.ExecuteReader()) { UserPropCollection result = new UserPropCollection(reader); if (reader.NextResult() && reader.Read()) { totalCount = reader.Get <int>(0); } result.TotalRecords = totalCount.Value; return(result); } } }
public override ImpressionRecordCollection GetImpressionRecordsForAdmin(AdminImpressionRecordFilter filter, int pageNumber) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "[bx_ImpressionRecordsWithTypeInfo]"; query.Pager.ResultFields = "*"; query.Pager.SortField = "RecordID"; query.Pager.IsDesc = filter.IsDesc; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = filter.PageSize; query.Pager.SelectCount = true; query.Pager.Condition = BuildCondition(query, filter); using (XSqlDataReader reader = query.ExecuteReader()) { ImpressionRecordCollection types = new ImpressionRecordCollection(reader); if (reader.NextResult()) { if (reader.Read()) { types.TotalRecords = reader.Get <int>(0); } } return(types); } } }
public override FriendCollection GetFriendsHasImpressions(int userID, int pageNumber, int pageSize) { using (SqlQuery db = new SqlQuery()) { db.Pager.TableName = "bx_FriendsHasImpressions"; db.Pager.SortField = "FriendUserID"; db.Pager.Condition = "UserID = @UserID"; db.Pager.PageNumber = pageNumber; db.Pager.PageSize = pageSize; db.Pager.SelectCount = true; db.CreateParameter <int>("@UserID", userID, SqlDbType.Int); using (XSqlDataReader reader = db.ExecuteReader()) { FriendCollection result = new FriendCollection(reader); if (reader.NextResult() && reader.Read()) { result.TotalRecords = reader.Get <int>(0); } return(result); } } }
public override EmoticonCollection GetEmoticons(int userID, int GroupID, int pageSize, int pageNumber, bool isDesc, out int totalCount) { totalCount = 0; using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_Emoticons"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.PrimaryKey = "EmoticonID"; query.Pager.SelectCount = true; query.Pager.SortField = "SortOrder"; query.Pager.IsDesc = isDesc; query.Pager.Condition = " GroupID = @GroupID AND EXISTS( SELECT * FROM bx_EmoticonGroups WHERE GroupID = @GroupID AND UserID = @UserID)"; query.CreateParameter <int>("@GroupID", GroupID, SqlDbType.Int); query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { EmoticonCollection emoticons = new EmoticonCollection(reader); if (reader.NextResult()) { if (reader.Read()) { emoticons.TotalRecords = reader.Get <int>(0); } } totalCount = emoticons.TotalRecords; return(emoticons); } } }
public override ImpressionRecordCollection GetTargetUserImpressionRecords(int targetUserID, int pageNumber, int pageSize, ref int?totalCount) { using (SqlQuery db = new SqlQuery()) { db.Pager.TableName = "bx_ImpressionRecordsWithTypeInfo"; db.Pager.Condition = "TargetUserID = @TargetUserID"; db.Pager.SortField = "RecordID"; db.Pager.PageNumber = pageNumber; db.Pager.PageSize = pageSize; db.Pager.TotalRecords = totalCount; db.Pager.SelectCount = true; db.CreateParameter <int>("@TargetUserID", targetUserID, System.Data.SqlDbType.Int); using (XSqlDataReader reader = db.ExecuteReader()) { ImpressionRecordCollection result = new ImpressionRecordCollection(reader); if (reader.NextResult() && reader.Read()) { totalCount = reader.Get <int>(0); result.TotalRecords = totalCount.Value; } return(result); } } }
public override DoingCollection GetEveryoneDoingsWithComments(int pageNumber, int pageSize, ref int?totalCount) { DoingCollection doings = null; using (SqlSession db = new SqlSession()) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "[bx_Doings]"; query.Pager.SortField = "[DoingID]"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.TotalRecords = totalCount; query.Pager.IsDesc = true; query.Pager.SelectCount = true; using (XSqlDataReader reader = query.ExecuteReader()) { doings = new DoingCollection(reader); if (totalCount == null && reader.NextResult() && reader.Read()) { totalCount = reader.Get <int>(0); } doings.TotalRecords = totalCount.GetValueOrDefault(); } } FillDoingComments(doings, db); } return(doings); }
/// <summary> /// 获取指定类型的标签 /// </summary> /// <param name="type">类型,如日志标签等</param> public override TagCollection GetTags(TagType type, int pageNumber, int pageSize, ref int?count) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_Tags"; query.Pager.SortField = "ID"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.TotalRecords = count; query.Pager.IsDesc = true; query.Pager.SelectCount = true; query.Pager.Condition = "[ID] IN (SELECT [TagID] FROM [bx_TagRelation] WHERE [Type] = @Type)"; query.CreateParameter <TagType>("@Type", type, SqlDbType.TinyInt); using (XSqlDataReader reader = query.ExecuteReader()) { TagCollection tags = new TagCollection(reader); if (count == null && reader.NextResult()) { if (reader.Read()) { count = reader.Get <int>(0); } } return(tags); } } }
/// <summary> /// 高级搜索 /// </summary> public override NotifyCollection GetNotifiesBySearch(AdminNotifyFilter notifyFilter, int pageNumber) { using (SqlQuery query = new SqlQuery()) { StringBuilder condition = FilterToCondition(query, notifyFilter); query.Pager.IsDesc = true; query.Pager.TableName = "[bx_Notify]"; query.Pager.SortField = "[NotifyID]"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = notifyFilter.PageSize; query.Pager.SelectCount = true; query.Pager.Condition = condition.ToString(); using (XSqlDataReader reader = query.ExecuteReader()) { NotifyCollection notifies = new NotifyCollection(reader); if (reader.NextResult()) { if (reader.Read()) { notifies.TotalRecords = reader.Get <int>(0); } } return(notifies); } } }
public override InviteSerialCollection GetInviteSerials(int operatorUserID, InviteSerialStatus status, string filter, int pageNumber, out int totalCount) { using (SqlQuery query = new SqlQuery()) { StringBuffer Condition = new StringBuffer(); Condition += " AND UserID = @UserID"; query.CreateParameter <int>("@UserID", operatorUserID, SqlDbType.Int); if (status != InviteSerialStatus.All) { if (status != InviteSerialStatus.Expires) { Condition += " AND [Status] = @Status"; query.CreateParameter <byte>("@Status", (byte)status, SqlDbType.TinyInt); } else if (status == InviteSerialStatus.Expires) { Condition += " AND Status <> 1 AND ExpiresDate <= GETDATE()"; } } if (string.IsNullOrEmpty(filter) == false) { Condition += " AND (Serial LIKE '%'+ @word +'%' OR ToUserID IN( SELECT UserID FROM bx_Users WHERE Username LIKE '%'+ @word +'%' OR Realname LIKE '%'+ @word +'%' ))"; query.CreateParameter <string>("@word", filter, SqlDbType.NVarChar, 50); } if (Condition.Length > 0) { Condition.Remove(0, 5); } query.Pager.SortField = "CreateDate"; query.Pager.IsDesc = true; query.Pager.TableName = "[bx_InviteSerials]"; query.Pager.SelectCount = true; query.Pager.PageSize = 20; query.Pager.PageNumber = pageNumber > 0 ? pageNumber : 1; query.Pager.Condition = Condition.ToString(); query.Pager.PrimaryKey = "[ID]"; totalCount = 0; using (XSqlDataReader reader = query.ExecuteReader()) { InviteSerialCollection Serials = new InviteSerialCollection(reader); if (reader.NextResult()) { if (reader.Read()) { totalCount = reader.GetInt32(0); Serials.TotalRecords = totalCount; } } return(Serials); } } }
/// <summary> /// 获取指定用户/所有用户的所有通知 /// </summary> /// <param name="userID">指定用户的ID,可以为空,为空则为要获取所有用户</param> /// <returns>返回指定用户的所有通知集合</returns> public override NotifyCollection GetNotifies(int?userID, int pageSize, int pageNumber, ref int?count) { using (SqlQuery query = new SqlQuery()) { query.Pager.IsDesc = true; query.Pager.TableName = "[bx_Notify]"; query.Pager.SortField = "[NotifyID]"; query.Pager.PrimaryKey = "[NotifyID]"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.TotalRecords = count; query.Pager.SelectCount = true; if (userID != null) { query.Pager.Condition = @"[UserID] = @UserID"; } query.CreateParameter <int?>("@UserID", userID, SqlDbType.Int); using (XSqlDataReader reader = query.ExecuteReader()) { NotifyCollection notifies = new NotifyCollection(reader); if (count == null && reader.NextResult()) { if (reader.Read()) { count = reader.Get <int>(0); } } return(notifies); } } }
public override T GetNotify <T>(int?userID, int notifyID, bool isSetRead) { using (SqlQuery query = new SqlQuery()) { query.CommandText = "bx_GetNotify"; query.CommandType = CommandType.StoredProcedure; query.CreateParameter <int?>("@UserID", userID, SqlDbType.Int); query.CreateParameter <int>("@NotifyID", notifyID, SqlDbType.Int); query.CreateParameter <bool>("@SetRead", isSetRead, SqlDbType.Bit); using (XSqlDataReader reader = query.ExecuteReader()) { if (reader.Read()) { T result = new T(); result.ParseFromWrap(reader); return(result); } } } return(null); }
public override PropLogCollection GetPropLogs(int userID, PropLogType type, int pageNumber, int pageSize) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_PropLogs"; query.Pager.SortField = "PropLogID"; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.SelectCount = true; query.Pager.Condition = "UserID = @UserID"; query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); if (type != PropLogType.All) { query.CreateParameter <PropLogType>("@Type", type, SqlDbType.TinyInt); query.Pager.Condition += " AND Type = @Type"; } using (XSqlDataReader reader = query.ExecuteReader()) { PropLogCollection result = new PropLogCollection(reader); if (reader.NextResult() && reader.Read()) { result.TotalRecords = reader.Get <int>(0); } return(result); } } }
public override EmoticonCollection AdminGetUserEmoticons(int userID, int pageSize, int pageIndex) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "bx_Emoticons"; query.Pager.Condition = " GroupID IN (SELECT GroupID FROM bx_EmoticonGroups WHERE UserID = @UserID)"; query.CreateParameter <int>("@UserID", userID, SqlDbType.Int); query.Pager.PageSize = pageSize; query.Pager.PageNumber = pageIndex; query.Pager.SortField = "SortOrder"; query.Pager.PrimaryKey = "EmoticonID"; query.Pager.SelectCount = true; using (XSqlDataReader reader = query.ExecuteReader()) { EmoticonCollection Emoticons = new EmoticonCollection(reader); if (reader.NextResult()) { if (reader.Read()) { Emoticons.TotalRecords = reader.Get <int>(0); } } return(Emoticons); } } }
private string GetExtendData(BasicThread thread, ThreadType threadType, XSqlDataReader reader, bool isFirstRead) { string extendData = null; switch (threadType) { case ThreadType.Poll: PollThreadV5 poll = thread == null ? new PollThreadV5() : (PollThreadV5)thread; if (isFirstRead || reader.NextResult()) { while (reader.Read()) { poll.FillPoll(reader); } } if (reader.NextResult()) { poll.PollItems = new PollItemCollectionV5(reader); } if (thread == null || poll.VotedUserIDs == null) poll.VotedUserIDs = new List<int>(); if (reader.NextResult()) { while (reader.Read()) { poll.VotedUserIDs.Add(reader.Get<int>(0)); } } extendData = poll.GetExtendData(); break; case ThreadType.Question: QuestionThread question = thread == null ? new QuestionThread() : (QuestionThread)thread; if (isFirstRead || reader.NextResult()) { while (reader.Read()) { question.FillQuestion(reader); } } if (thread == null || question.Rewards == null) question.Rewards = new Dictionary<int, int>(); if (reader.NextResult()) { while (reader.Read()) { question.Rewards.Add(reader.Get<int>("PostID"), reader.Get<int>("Reward")); } } extendData = question.GetExtendData(); break; case ThreadType.Polemize: PolemizeThreadV5 polemize = thread == null ? new PolemizeThreadV5() : (PolemizeThreadV5)thread; if (isFirstRead || reader.NextResult()) { while (reader.Read()) { polemize.FillPolemize(reader); } } if (reader.NextResult()) { polemize.FillPolemizeUsers(reader); } extendData = polemize.GetExtendData(); break; default: break; } if (thread != null) thread.ExtendDataIsNull = false; return extendData; }
private void GetThread(XSqlDataReader reader, AttachmentCollection attachments, DateTime? expiresDate, out BasicThread thread, out PostV5 post, out List<int> attachmentIDs, out Dictionary<string, int> fileIDs) { attachmentIDs = new List<int>(); fileIDs = new Dictionary<string, int>(); thread = null; post = null; while (reader.Read()) { thread = GetThread(reader, expiresDate); } if (attachments.Count > 0) { //本地刚上传的附件 ID if (reader.NextResult()) { while (reader.Read()) { attachmentIDs.Add(reader.Get<int>(0)); } } //所有附件 if (reader.NextResult()) { while (reader.Read()) { string fileID = reader.Get<string>("fileID"); if (fileIDs.ContainsKey(fileID) == false) fileIDs.Add(fileID, reader.Get<int>("attachmentID")); } } } if (reader.NextResult()) { while (reader.Read()) { post = new PostV5(reader); } } }
private PostCollectionV5 GetPosts(XSqlDataReader reader, bool isFirstRead) { PostCollectionV5 posts = new PostCollectionV5(); List<int> replyIDs = new List<int>(); if (isFirstRead) { while (reader.Read()) { PostV5 post = new PostV5(reader); post.Attachments = new AttachmentCollection(); post.PostMarks = new PostMarkCollection(); posts.Add(post); replyIDs.Add(post.PostID); } } else { if (reader.NextResult()) { while (reader.Read()) { PostV5 post = new PostV5(reader); post.Attachments = new AttachmentCollection(); post.PostMarks = new PostMarkCollection(); posts.Add(post); replyIDs.Add(post.PostID); } } } //读取下一个结果集 if (reader.NextResult()) { while (reader.Read()) //附件列表 { Attachment attachment = new Attachment(reader); int replyIndex = replyIDs.IndexOf(attachment.PostID); if (replyIndex != -1) { posts[replyIndex].Attachments.Add(attachment); } } } //历史附件 if (reader.NextResult()) { while (reader.Read()) //附件列表 { Attachment attachment = new Attachment(reader); attachment.AttachType = AttachType.History; int hpostID = reader.Get<int>("HPostID"); int replyIndex = replyIDs.IndexOf(hpostID); if (replyIndex != -1) { posts[replyIndex].Attachments.Add(attachment); } } } if (reader.NextResult())//评分列表 { while (reader.Read()) { PostMark postMark = new PostMark(reader); int replyIndex = replyIDs.IndexOf(postMark.PostID); if (replyIndex != -1) { posts[replyIndex].PostMarks.Add(postMark); } } } if (reader.NextResult()) { string s = null; while (reader.Read()) { s = reader.Get<string>(0); } #if !Publish if (reader.SqlQuery.TempInfo != null) reader.SqlQuery.TempInfo += "-----" + s; else reader.SqlQuery.TempInfo = s; #endif } return posts; }