Example #1
0
        public override bool StepExecute(int operatorUserID, string param, ref long offset, ref int totalCount, ref int finishedCount, out string title, out bool isLastStep)
        {
            StringList paramData = StringList.Parse(param);

            AdminBlogCategoryFilter filter = AdminBlogCategoryFilter.Parse(paramData[0]);

            int stepCount;

            if (BlogBO.Instance.DeleteBlogCategoriesForAdmin(operatorUserID, filter, paramData[2] == "1", paramData[1] == "1", stepDeleteCount, out stepCount))             // .DeleteDoingsBySearch(filter, 200);
            {
                finishedCount += stepCount;

                isLastStep = stepCount < stepDeleteCount;

                title = "正在删除日志分类,总数 " + totalCount + ",已删 " + finishedCount;

                return(true);
            }
            else
            {
                isLastStep = true;
                title      = string.Empty;
            }

            return(true);
        }
Example #2
0
        public override bool BeforeExecute(int operatorUserID, string param, ref long offset, ref int totalCount, out string title)
        {
            StringList paramData = StringList.Parse(param);

            AdminBlogCategoryFilter filter = AdminBlogCategoryFilter.Parse(paramData[0]);

            BlogCategoryCollection categories = BlogBO.Instance.GetBlogCategoriesForAdmin(operatorUserID, filter, 1);

            if (categories == null || categories.Count == 0)
            {
                title = "没有数据可以删除";
                return(true);
            }

            totalCount = categories.TotalRecords;

            title = "将删除 " + totalCount + " 个日志分类";

            return(true);
        }
Example #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            m_AdminForm = AdminBlogCategoryFilter.GetFromFilter("filter");

            if (_Request.IsClick("advancedsearch"))
            {
                SearchCategories();
            }
            else if (_Request.IsClick("deletechecked"))
            {
                DeleteChecked();
            }
            else if (_Request.IsClick("deletesearched"))
            {
                DeleteSearch();
            }

            using (ErrorScope es = new ErrorScope())
            {
                int pageNumber = _Request.Get <int>("page", 0);

                m_CategoryListPageSize = m_AdminForm.PageSize;

                m_CategoryList = BlogBO.Instance.GetBlogCategoriesForAdmin(MyUserID, m_AdminForm, pageNumber);

                if (m_CategoryList != null)
                {
                    m_TotalCategoryCount = m_CategoryList.TotalRecords;

                    UserBO.Instance.WaitForFillSimpleUsers <BlogCategory>(m_CategoryList);
                }

                if (es.HasUnCatchedError)
                {
                    es.CatchError <ErrorInfo>(delegate(ErrorInfo error)
                    {
                        ShowError(error);
                    });
                }
            }
        }
Example #4
0
        public override BlogCategoryCollection GetBlogCategoriesBySearch(Guid[] excludeRoleIDs, AdminBlogCategoryFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildConditionsByFilter(query, filter, excludeRoleIDs, false);

                query.Pager.TableName = "[bx_BlogCategories]";
                query.Pager.SortField = filter.Order.ToString();
                query.Pager.IsDesc = filter.IsDesc;
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = filter.PageSize;
                query.Pager.SelectCount = true;

                query.Pager.Condition = conditions.ToString();

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    BlogCategoryCollection categories = new BlogCategoryCollection(reader);

                    if (reader.NextResult())
                    {
                        if (reader.Read())
                        {
                            categories.TotalRecords = reader.Get<int>(0);
                        }
                    }

                    return categories;
                }
            }
        }
Example #5
0
        private string BuildConditionsByFilter(SqlQuery query, AdminBlogCategoryFilter filter, IEnumerable<Guid> excludeRoleIDs, bool startWithWhere)
        {
            StringBuffer sqlConditions = new StringBuffer();

            if (string.IsNullOrEmpty(filter.SearchKey) == false)
            {
                sqlConditions += " AND [Name] LIKE '%' + @SearchKey + '%'";
                query.CreateParameter<string>("@SearchKey", filter.SearchKey, SqlDbType.NVarChar, 50);
            }
            if (filter.BeginDate != null)
            {
                sqlConditions += " AND  [CreateDate] >= @BeginDate";
                query.CreateParameter<DateTime?>("@BeginDate", filter.EndDate, SqlDbType.DateTime);
            }
            if (filter.EndDate != null)
            {
                sqlConditions += " AND [CreateDate] <= @EndDate";
                query.CreateParameter<DateTime?>("@EndDate", filter.EndDate, SqlDbType.DateTime);
            }
            if (string.IsNullOrEmpty(filter.Username) == false)
            {
                sqlConditions += " AND [UserID] = (SELECT [UserID] FROM [bx_Users] WHERE [Username] = @Username)";
                query.CreateParameter<string>("@Username", filter.Username, SqlDbType.NVarChar, 50);

            }

            string excludeRoleSQL = DaoUtil.GetExcludeRoleSQL("[UserID]", excludeRoleIDs, query);

            if (string.IsNullOrEmpty(excludeRoleSQL) == false)
                sqlConditions += " AND " + excludeRoleSQL;

            sqlConditions += " AND [CategoryID] != 0";

            if (sqlConditions.Length > 0)
            {
                sqlConditions.Remove(0, 5);

                if (startWithWhere)
                    sqlConditions.InnerBuilder.Insert(0, " WHERE ");
            }

            return sqlConditions.ToString();
        }
Example #6
0
        public override DeleteResult DeleteBlogCategoriesBySearch(AdminBlogCategoryFilter filter, bool deleteArticle, int operatorUserID, IEnumerable<Guid> excludeRoleIDs, int topCount, out int deletedCount)
        {

            deletedCount = 0;

            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildConditionsByFilter(query, filter, excludeRoleIDs, true);

                StringBuffer sql = new StringBuffer();

                sql += @"
DECLARE @DeleteData table (UserID int, [CategoryID] int, [ArticleCount] int);

INSERT INTO @DeleteData SELECT TOP (@TopCount) [A].[UserID],[A].[CategoryID],(SELECT COUNT(*) FROM [bx_BlogArticles] AS [B] WHERE [B].[CategoryID]=[A].[CategoryID]) FROM [bx_BlogCategories] AS [A] " + conditions + ";";

                if (deleteArticle)
                {

                    sql += @"
DELETE [bx_BlogArticles] WHERE [CategoryID] IN (SELECT [CategoryID] FROM @DeleteData);";

                }
                else
                {

                    sql += @"
UPDATE [bx_BlogArticles] SET [CategoryID] = 0 WHERE [CategoryID] IN (SELECT [CategoryID] FROM @DeleteData);";

                }

                sql += @"
DELETE [bx_BlogCategories] WHERE [CategoryID] IN (SELECT [CategoryID] FROM @DeleteData);

SELECT @@ROWCOUNT;

SELECT [UserID],SUM([ArticleCount]) AS [Count] FROM @DeleteData GROUP BY [UserID];";

                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);

                    if (reader.NextResult())
                    {
                        while (reader.Read())
                        {
                            deleteResult.Add(reader.Get<int>("UserID"), reader.Get<int>("Count"));
                        }
                    }

                    return deleteResult;
                }
            }

        }
Example #7
0
 /// <summary>
 /// 删除日志分类
 /// </summary>
 public abstract DeleteResult DeleteBlogCategoriesBySearch(AdminBlogCategoryFilter filter, bool deleteArticle, int operatorUserID, IEnumerable <Guid> excludeRoleIDs, int topCount, out int deletedCount);
Example #8
0
 /// <summary>
 /// 搜索博客分类(后台管理用)
 /// </summary>
 /// <param name="excludeRoleIDs">在返回结果中要排除哪些用户组成员发布的日志</param>
 /// <param name="filter">搜索条件</param>
 /// <param name="pageNumber">数据分页页码</param>
 /// <param name="pageSize">数据分页每页条数</param>
 /// <returns></returns>
 public abstract BlogCategoryCollection GetBlogCategoriesBySearch(Guid[] excludeRoleIDs, AdminBlogCategoryFilter filter, int pageNumber);
Example #9
0
        private void SearchCategories()
        {
            AdminBlogCategoryFilter filter = AdminBlogCategoryFilter.GetFromForm();

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