Exemple #1
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);
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            m_AdminForm = UserPropFilter.GetFromFilter("filter");

            int pageNumber = _Request.Get <int>("page", 1);

            if (_Request.IsClick("deletechecked"))
            {
                int[] ids = StringUtil.Split <int>(_Request.Get("PropIDs", MaxLabs.WebEngine.Method.Post, string.Empty));

                if (ids != null && ids.Length > 0)
                {
                    PropBO.Instance.DeleteUserPropsForAdmin(My, ids);

                    JumpTo("interactive/manage-userprop.aspx");
                }
            }
            else if (_Request.IsClick("advancedsearch"))
            {
                UserPropFilter filter = UserPropFilter.GetFromForm();

                filter.Apply("filter", "page");
            }

            m_PropList = PropBO.Instance.GetUserPropsForAdmin(My, m_AdminForm, pageNumber);

            m_TotalPropCount = m_PropList.TotalRecords;

            UserBO.Instance.WaitForFillSimpleUsers <UserProp>(m_PropList);
        }
Exemple #3
0
        private string BuildCondition(SqlQuery db, UserPropFilter filter)
        {
            StringBuffer sb = new StringBuffer();

            if (filter.UserID != null)
            {
                sb += " AND UserID = @UserID";
                db.CreateParameter <int>("@UserID", filter.UserID.Value, SqlDbType.Int);
            }
            else if (string.IsNullOrEmpty(filter.User) == false)
            {
                sb += " AND UserID = (SELECT UserID FROM bx_Users WHERE Username = @User)";
                db.CreateParameter <string>("@User", filter.User, SqlDbType.NVarChar, 50);
            }

            if (filter.PropID != null)
            {
                sb += " AND PropID = @PropID";
                db.CreateParameter <int>("@PropID", filter.PropID.Value, SqlDbType.Int);
            }

            if (filter.Selling != null)
            {
                if (filter.Selling.Value)
                {
                    sb += " AND SellingCount > 0";
                }
                else
                {
                    sb += " AND SellingCount = 0";
                }
            }

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

            return(sb.ToString());
        }
Exemple #4
0
        public override bool DeleteUserPropsForAdmin(UserPropFilter filter, int topCount, out int deletedCount)
        {
            deletedCount = 0;

            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildCondition(query, filter);

                StringBuffer sql = new StringBuffer();

                sql += @"
DECLARE @DeleteData table (UserPropID int);

INSERT INTO @DeleteData SELECT TOP (@TopCount) [UserPropID] FROM [bx_UserPropsView] WHERE " + conditions + @";

DELETE [bx_UserPropsView] WHERE UserPropID IN (SELECT [UserPropID] FROM @DeleteData);

SELECT @@ROWCOUNT;";

                query.CreateTopParameter("@TopCount", topCount);

                query.CommandText = sql.ToString();

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    DeleteResult deleteResult = new DeleteResult();

                    if (reader.Read())
                    {
                        deletedCount = reader.Get <int>(0);
                    }

                    return(true);
                }
            }
        }
Exemple #5
0
        private string BuildCondition(SqlQuery db, UserPropFilter filter)
        {
            StringBuffer sb = new StringBuffer();

            if(filter.UserID != null)
            {
                sb += " AND UserID = @UserID";
                db.CreateParameter<int>("@UserID", filter.UserID.Value, SqlDbType.Int);
            }
            else if(string.IsNullOrEmpty(filter.User) == false)
            {
                sb += " AND UserID = (SELECT UserID FROM bx_Users WHERE Username = @User)";
                db.CreateParameter<string>("@User", filter.User, SqlDbType.NVarChar, 50);
            }

            if(filter.PropID != null)
            {
                sb += " AND PropID = @PropID";
                db.CreateParameter<int>("@PropID", filter.PropID.Value, SqlDbType.Int);
            }

            if(filter.Selling != null)
            {
                if(filter.Selling.Value)
                    sb += " AND SellingCount > 0";
                else
                    sb += " AND SellingCount = 0";
            }

            if(sb.Length > 0)
                sb.InnerBuilder.Remove(0, 5);

            return sb.ToString();
        }
Exemple #6
0
        public override bool DeleteUserPropsForAdmin(UserPropFilter filter, int topCount, out int deletedCount)
        {
            deletedCount = 0;

            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildCondition(query, filter);

                StringBuffer sql = new StringBuffer();

                sql += @"
DECLARE @DeleteData table (UserPropID int);

INSERT INTO @DeleteData SELECT TOP (@TopCount) [UserPropID] FROM [bx_UserPropsView] WHERE " + conditions + @";

DELETE [bx_UserPropsView] WHERE UserPropID IN (SELECT [UserPropID] FROM @DeleteData);

SELECT @@ROWCOUNT;";

                query.CreateTopParameter("@TopCount", topCount);

                query.CommandText = sql.ToString();

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    DeleteResult deleteResult = new DeleteResult();

                    if (reader.Read())
                        deletedCount = reader.Get<int>(0);

                    return true;
                }
            }
        }
Exemple #7
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;
                }
            }
        }