コード例 #1
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);
                }
            }
        }
コード例 #2
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);
        }
コード例 #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
ファイル: 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);
                }
            }
        }
コード例 #5
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);
                }
            }
        }
コード例 #6
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);
                }
            }
        }
コード例 #7
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);
                }
            }
        }
コード例 #8
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);
                }
            }
        }
コード例 #9
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);
                }
            }
        }
コード例 #10
0
        public override MaxSerial CreateSerial(int ownerUserId, DateTime expriseDate, SerialType type, string data, out bool success)
        {
            using (SqlQuery query = new SqlQuery())
            {
                Guid serial = Guid.NewGuid();

                DateTime createDate = DateTimeUtil.Now;

                query.CommandText = "bx_CreateSerial";
                query.CommandType = System.Data.CommandType.StoredProcedure;
                query.CreateParameter <int>("@UserID", ownerUserId, SqlDbType.Int);
                query.CreateParameter <DateTime>("@ExpiresDate", expriseDate, SqlDbType.DateTime);
                query.CreateParameter <byte>("@Type", (byte)type, SqlDbType.TinyInt);
                query.CreateParameter <string>("@Data", data, SqlDbType.NVarChar, 1000);

                SqlParameter outputParam = query.CreateParameter <bool>("@Success", SqlDbType.Bit, ParameterDirection.Output);

                MaxSerial newSerial = null;
                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    while (reader.Next)
                    {
                        newSerial = new MaxSerial(reader);
                    }
                }

                success = (bool)outputParam.Value;
                return(newSerial);
            }
        }
コード例 #11
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);
                }
            }
        }
コード例 #12
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);
                }
            }
        }
コード例 #13
0
        public override int UpdatePointShow(int userId, int addPoints, int price, string content, out PointShow showinfo)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.CommandText = "bx_UpdatePointShowPrice";
                query.CommandType = CommandType.StoredProcedure;

                query.CreateParameter <int>("@Price", price, SqlDbType.Int);
                query.CreateParameter <int>("@UserID", userId, SqlDbType.Int);
                query.CreateParameter <int>("@AddPoints", addPoints, SqlDbType.Int);
                query.CreateParameter <string>("@Content", content, SqlDbType.NVarChar, 500);

                SqlParameter parameter = query.CreateParameter <int>("@ReturnValue", SqlDbType.Int, ParameterDirection.ReturnValue);
                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    showinfo = null;
                    while (reader.Next)
                    {
                        showinfo = new PointShow(reader);
                    }
                }

                return((int)parameter.Value);
            }
        }
コード例 #14
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);
                }
            }
        }
コード例 #15
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);
                }
            }
        }
コード例 #16
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);
            }
        }
コード例 #17
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);
            }
        }
コード例 #18
0
ファイル: AuctionDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #19
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);
                }
            }
        }
コード例 #20
0
ファイル: PointLogDao.cs プロジェクト: zhangbo27/bbsmax
        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);
                }
            }
        }
コード例 #21
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);
                }
            }
        }
コード例 #22
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);
        }
コード例 #23
0
ファイル: NotifyDao.cs プロジェクト: zhangbo27/bbsmax
        public override SystemNotify CreateSystemNotify(string subject, string Content, IEnumerable <Guid> receiveRoles, IEnumerable <int> receiveUserIDs, DateTime beginDate, DateTime endDate, int dispatcherID, string dispatcherIP)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.CommandText = @"INSERT INTO bx_SystemNotifies(Subject, BeginDate, EndDate, ReceiveRoles, ReceiveUserIDs, Content, DispatcherID, DispatcherIP) VALUES( @Subject, @BeginDate, @EndDate,@ReceiveRoles, @ReceiveUserIDs, @Content, @DispatcherID, @DispatcherIP);
        SELECT * FROM bx_SystemNotifies WHERE NotifyID = @@IDENTITY;
";
                query.CreateParameter <string>("@Subject", subject, SqlDbType.NVarChar, 200);
                query.CreateParameter <DateTime>("@BeginDate", beginDate, SqlDbType.DateTime);
                query.CreateParameter <DateTime>("@EndDate", endDate, SqlDbType.DateTime);
                query.CreateParameter <string>("@ReceiveRoles", StringUtil.Join(receiveRoles, ","), SqlDbType.Text);
                query.CreateParameter <string>("@ReceiveUserIDs", StringUtil.Join(receiveUserIDs, ","), SqlDbType.VarChar, 2000);
                query.CreateParameter <string>("@Content", Content, SqlDbType.NVarChar, 2000);
                query.CreateParameter <int>("@DispatcherID", dispatcherID, SqlDbType.Int);
                query.CreateParameter <string>("@DispatcherIP", dispatcherIP, SqlDbType.VarChar, 200);

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    SystemNotify result = null;

                    while (reader.Next)
                    {
                        result = new SystemNotify(reader);
                    }

                    return(result);
                }
            }
        }
コード例 #24
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);
                }
            }
        }
コード例 #25
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);
                }
            }
        }
コード例 #26
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);
                }
            }
        }
コード例 #27
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);
        }
コード例 #28
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);
                }
            }
        }
コード例 #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
ファイル: 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);
                }
            }
        }
コード例 #31
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);
         }
     }
 }
コード例 #32
0
ファイル: PostDao.cs プロジェクト: huchao007/bbsmax
 private PostV5 GetPost(XSqlDataReader reader, bool isFirstRead)
 {
     PostCollectionV5 posts = GetPosts(reader, isFirstRead);
     if (posts.Count > 0)
         return posts[0];
     else
         return null;
 }
コード例 #33
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;
        }
コード例 #34
0
ファイル: PostDao.cs プロジェクト: huchao007/bbsmax
 private BasicThread GetThread(XSqlDataReader reader, DateTime? expiresDate)
 {
     ThreadType threadType = reader.Get<ThreadType>("ThreadType");
     switch (threadType)
     {
         case ThreadType.Poll:
             PollThreadV5 poll = new PollThreadV5(reader);
             if (expiresDate != null)
                 poll.IsClosed = expiresDate.Value <= DateTimeUtil.Now;
             return (BasicThread)poll;
         case ThreadType.Polemize:
             PolemizeThreadV5 polemize = new PolemizeThreadV5(reader);
             if (expiresDate != null)
                 polemize.IsClosed = expiresDate.Value <= DateTimeUtil.Now;
             return (BasicThread)polemize;
         case ThreadType.Question:
             QuestionThread question = new QuestionThread(reader);
             if (question.IsClosed == false)
             {
                 if (expiresDate != null)
                     question.IsClosed = expiresDate.Value <= DateTimeUtil.Now;
             }
             return (BasicThread)question;
         default:
             return new BasicThread(reader);
     }
 }
コード例 #35
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;
        }