コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
ファイル: OperationLogDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #3
0
ファイル: PayDao.cs プロジェクト: zhangbo27/bbsmax
        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);
            }
        }
コード例 #4
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);
                }
            }
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
                }
            }
        }
コード例 #9
0
        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);
            }
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        /// <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);
                }
            }
        }
コード例 #15
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
        /// <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);
                }
            }
        }
コード例 #16
0
        /// <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);
                }
            }
        }
コード例 #17
0
ファイル: PropDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #18
0
ファイル: PropDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #19
0
        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);
                }
            }
        }
コード例 #20
0
        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);
                }
            }
        }
コード例 #21
0
        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);
                }
            }
        }
コード例 #22
0
        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);
                }
            }
        }
コード例 #23
0
        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);
        }
コード例 #24
0
        /// <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);
                }
            }
        }
コード例 #25
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
        /// <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);
                }
            }
        }
コード例 #26
0
ファイル: InviteDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #27
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
        /// <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);
                }
            }
        }
コード例 #28
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
        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);
        }
コード例 #29
0
ファイル: PropDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #30
0
        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);
                }
            }
        }
コード例 #31
0
ファイル: PostDao.cs プロジェクト: huchao007/bbsmax
        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;
        }
コード例 #32
0
ファイル: PostDao.cs プロジェクト: huchao007/bbsmax
 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);
         }
     }
 }
コード例 #33
0
ファイル: PostDao.cs プロジェクト: huchao007/bbsmax
        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;
        }