Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        public override BanUserOperationCollection GetBanUserLogsByUserID(int userid)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.CommandText = @"
SELECT * FROM bx_BanUserLogs  WHERE UserID = @userid ORDER BY OperationTime DESC;
SELECT * FROM bx_BanUserLogForumInfos WHERE LogID IN(SELECT LogID FROM bx_BanUserLogs  WHERE UserID = @userid) ORDER BY LogID DESC;";
                query.CreateParameter <int>("@userid", userid, SqlDbType.Int);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    BanUserOperationCollection collection = new BanUserOperationCollection(reader);

                    BanUserOperation operation = null;
                    if (reader.NextResult())
                    {
                        while (reader.Next)
                        {
                            BanForumInfo foruminfo = new BanForumInfo(reader);
                            if (operation != null && foruminfo.ID == operation.ID)
                            {
                                operation.ForumInfoList.Add(foruminfo);
                            }
                            else
                            {
                                operation = collection.GetValue(foruminfo.ID);
                                operation.ForumInfoList.Add(foruminfo);
                            }
                        }
                    }
                    return(collection);
                }
            }
        }
Пример #3
0
        /// <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);
                }
            }
        }
Пример #4
0
        public override Dictionary <int, DiskDirectoryCollection> GetParentDirectories(int userID, int directoryID)
        {
            Dictionary <int, DiskDirectoryCollection> menuDirectories = new Dictionary <int, DiskDirectoryCollection>();
            int parentID = directoryID;

            using (SqlQuery query = new SqlQuery())
            {
                query.CommandText = "bx_GetCurrentAndParentDirectories";
                query.CommandType = CommandType.StoredProcedure;

                query.CreateParameter("@UserID", userID, SqlDbType.Int);
                query.CreateParameter("@DirectoryID", directoryID, SqlDbType.Int);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    do
                    {
                        DiskDirectoryCollection directories = new DiskDirectoryCollection(reader);

                        if (directories.Count != 0)
                        {
                            parentID = directories[0].ParentID;

                            if (!menuDirectories.ContainsKey(parentID))
                            {
                                menuDirectories.Add(parentID, directories);
                            }
                        }
                    }while (reader.NextResult());
                }
            }

            return(menuDirectories);
        }
Пример #5
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);
                }
            }
        }
Пример #6
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);
                }
            }
        }
Пример #7
0
        public override List <Website> GetWebsites(int pageSize, int pageNumber, out int totalCount)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName   = "Chinaz_Websites";
                query.Pager.PageNumber  = pageNumber;
                query.Pager.PageSize    = pageSize;
                query.Pager.PrimaryKey  = "WebsiteID";
                query.Pager.SortField   = "WebsiteID";
                query.Pager.SelectCount = true;
                query.Pager.IsDesc      = true;

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    totalCount = 0;
                    List <Website> results = new List <Website>();
                    while (reader.Next)
                    {
                        results.Add(new Website(reader));
                    }
                    if (reader.NextResult())
                    {
                        while (reader.Next)
                        {
                            totalCount = reader.Get <int>(00);
                        }
                    }
                    return(results);
                }
            }
        }
Пример #8
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);
                }
            }
        }
Пример #9
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);
        }
Пример #10
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);
                }
            }
        }
Пример #11
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);
        }
Пример #12
0
        public override SimpleUserCollection GetBannedUsers(int ForumID, int pageSize, int pageNumber, out int totalCount)
        {
            totalCount = 0;
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName   = "bx_SimpleUser";
                query.Pager.PageNumber  = pageNumber;
                query.Pager.PageSize    = pageSize;
                query.Pager.SelectCount = true;
                query.Pager.SelectCount = true;
                query.Pager.PrimaryKey  = "[UserID]";
                query.Pager.Condition   = " UserID IN(SELECT UserID FROM bx_BannedUsers WHERE ForumID = @ForumID AND EndDate > GETDATE())";
                query.CreateParameter <int>("@ForumID", ForumID, SqlDbType.Int);
                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    SimpleUserCollection users = new SimpleUserCollection(reader);
                    if (reader.NextResult())
                    {
                        while (reader.Read())
                        {
                            totalCount = reader.GetInt32(0);
                        }
                    }

                    return(users);
                }
            }
        }
Пример #13
0
        public override UserTempAvatarCollection GetUserTempAvatars(int pageSize, int pageNumber, out int totalCount)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName   = "bx_UserTempAvatar";
                query.Pager.PageSize    = pageSize;
                query.Pager.PageNumber  = pageNumber;
                query.Pager.PrimaryKey  = "UserID";
                query.Pager.SortField   = "[CreateDate]";
                query.Pager.IsDesc      = true;
                query.Pager.SelectCount = true;
                totalCount = 0;
                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    UserTempAvatarCollection tempAvatars = new UserTempAvatarCollection(reader);
                    if (reader.NextResult())
                    {
                        while (reader.Read())
                        {
                            totalCount = reader.Get <int>(0);
                        }
                    }

                    return(tempAvatars);
                }
            }
        }
Пример #14
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);
                }
            }
        }
Пример #15
0
        /// <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);
                }
            }
        }
Пример #16
0
        public override CommentCollection GetCommentsByFilter(AdminCommentFilter filter, int operatorUserID, IEnumerable <Guid> excludeRoleIDs, int pageNumber, out int totalCount)
        {
            totalCount = 0;

            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "bx_Comments";
                query.Pager.SortField = filter.Order.ToString();
                if (filter.Order != AdminCommentFilter.OrderBy.CommentID)
                {
                    query.Pager.PrimaryKey = "CommentID";
                }
                query.Pager.IsDesc      = filter.IsDesc;
                query.Pager.PageNumber  = pageNumber;
                query.Pager.PageSize    = filter.PageSize;
                query.Pager.SelectCount = true;
                query.Pager.Condition   = BuildConditionsByFilter(query, filter, false, operatorUserID, excludeRoleIDs);


                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    CommentCollection comments = new CommentCollection(reader);
                    if (reader.NextResult())
                    {
                        while (reader.Read())
                        {
                            totalCount = reader.Get <int>(0);
                        }
                    }
                    return(comments);
                }
            }
        }
Пример #17
0
        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);
                }
            }
        }
Пример #18
0
        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);
                }
            }
        }
Пример #19
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);
                }
            }
        }
Пример #20
0
        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);
                }
            }
        }
Пример #21
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);
                }
            }
        }
Пример #22
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);
                }
            }
        }
Пример #23
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);
                }
            }
        }
Пример #24
0
        /// <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);
                }
            }
        }
Пример #25
0
        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);
                }
            }
        }
Пример #26
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);
        }
Пример #27
0
        public override PointLogCollection GetPointLogs(PointLogFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                StringBuilder sb = new StringBuilder();

                if (!string.IsNullOrEmpty(filter.Username))
                {
                    sb.Append(" AND UserID IN( SELECT UserID FROM bx_Users WHERE Username = @Username )");
                    query.CreateParameter <string>("@Username", filter.Username, SqlDbType.NVarChar, 50);
                }

                if (filter.OperateID != null)
                {
                    sb.Append(" AND OperateID = @OperateID");
                    query.CreateParameter <int>("@OperateID", filter.OperateID.Value, SqlDbType.Int);
                }

                if (filter.BeginDate != null)
                {
                    sb.Append(" AND CreateTime >= @BeginDate");
                    query.CreateParameter <DateTime>("@BeginDate", filter.BeginDate.Value, SqlDbType.DateTime);
                }

                if (filter.EndDate != null)
                {
                    sb.Append(" AND CreateTime <= @EndDate");
                    query.CreateParameter <DateTime>("@EndDate", filter.EndDate.Value, SqlDbType.DateTime);
                }

                if (sb.Length > 0)
                {
                    sb.Remove(0, 4);
                }

                query.Pager.TableName   = "bx_PointLogs";
                query.Pager.PageNumber  = pageNumber;
                query.Pager.PrimaryKey  = "LogID";
                query.Pager.SortField   = "LogID";
                query.Pager.IsDesc      = true;
                query.Pager.PageSize    = filter.PageSize;
                query.Pager.SelectCount = true;
                query.Pager.Condition   = sb.ToString();


                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    PointLogCollection logs = new PointLogCollection(reader);

                    if (reader.NextResult())
                    {
                        while (reader.Next)
                        {
                            logs.TotalRecords = reader.Get <int>(0);
                        }
                    }
                    return(logs);
                }
            }
        }
Пример #28
0
        public override AuctionBidInfoCollection GetMyAuctionBids(int userID, int auctionID, int pageSize, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName   = "Chinaz_AuctionBids";
                query.Pager.PrimaryKey  = "BidID";
                query.Pager.IsDesc      = true;
                query.Pager.SelectCount = true;
                query.Pager.PageNumber  = pageNumber;
                query.Pager.PageSize    = pageSize;
                query.Pager.Condition   = "UserID = @UserID AND AuctionID = @AuctionID";
                query.CreateParameter <int>("@UserID", userID, SqlDbType.Int);
                query.CreateParameter <int>("@AuctionID", auctionID, SqlDbType.Int);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    AuctionBidInfoCollection bids = new AuctionBidInfoCollection(reader);
                    if (reader.NextResult())
                    {
                        while (reader.Next)
                        {
                            bids.TotalRecords = reader.Get <int>(0);
                        }
                    }

                    return(bids);
                }
            }
        }
Пример #29
0
        public override void GetDiskFiles(int userID, int directoryID, out DiskDirectoryCollection directories, out DiskFileCollection files)
        {
            files       = null;
            directories = null;

            using (SqlQuery query = new SqlQuery())
            {
                query.CommandText = "bx_GetDiskFiles";
                query.CommandType = CommandType.StoredProcedure;

                query.CreateParameter("@UserID", userID, SqlDbType.Int);
                query.CreateParameter("@DirectoryID", directoryID, SqlDbType.Int);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    directories = new DiskDirectoryCollection(reader);

                    if (reader.NextResult())
                    {
                        files = new DiskFileCollection(reader);
                    }
                }
            }

            if (files == null)
            {
                files = new DiskFileCollection();
            }

            if (directories == null)
            {
                directories = new DiskDirectoryCollection();
            }
        }
Пример #30
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);
                }
            }
        }
Пример #31
0
        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
 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
        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;
        }