Ejemplo n.º 1
0
        public override bool BeforeExecute(int operatorUserID, string param, ref long offset, ref int totalCount, out string title)
        {
            StringList paramData = StringList.Parse(param);

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

            //只取一条数据测试下就可以
            filter.PageSize = 1;

            BlogArticleCollection articles = BlogBO.Instance.GetBlogArticlesForAdmin(operatorUserID, filter, 1);

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

            totalCount = articles.TotalRecords;

            title = "将删除 " + totalCount + " 篇日志";

            return(true);
        }
Ejemplo n.º 2
0
        public override BlogArticleCollection GetCommentedArticles(int userID, int pageNumber, int pageSize)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "[bx_BlogArticles]";
                query.Pager.SortField = "ArticleID";
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = pageSize;
                query.Pager.IsDesc = true;
                query.Pager.SelectCount = true;
                query.Pager.Condition = "[ArticleID] IN (SELECT [TargetID] FROM [bx_Comments] WHERE [Type]=2 AND [UserID] = @UserID AND IsApproved = 1)";


                //query.Pager.Condition += " AND [PrivacyType] < 2";

                query.CreateParameter<int>("@UserID", userID, SqlDbType.Int);

                BlogArticleCollection articles;
                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    articles = new BlogArticleCollection(reader);

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

                return articles;
            }
        }
Ejemplo n.º 3
0
        public override BlogArticleCollection GetBlogArticlesBySearch(int operatorID, Guid[] excludeRoleIDs, AdminBlogArticleFilter filter, int pageNumber)
        {
            using (SqlQuery query = new SqlQuery())
            {
                string conditions = BuildConditionsByFilter(query, filter, operatorID, excludeRoleIDs, false);

                query.Pager.TableName = "[bx_BlogArticles]";

                query.Pager.SortField = filter.Order.ToString();

                if (filter.Order != AdminBlogArticleFilter.OrderBy.ArticleID)
                {
                    query.Pager.PrimaryKey = "ArticleID";
                }

                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())
                {
                    BlogArticleCollection articles = new BlogArticleCollection(reader);

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

                    return articles;
                }
            }
        }
Ejemplo n.º 4
0
        public override BlogArticleCollection GetVisitedBlogArticles(int visitorID, int pageNumber, int pageSize)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.IsDesc = true;
                query.Pager.TableName = "[bx_BlogArticles]";
                query.Pager.SortField = "[ArticleID]";
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = pageSize;
                query.Pager.SelectCount = true;
                query.Pager.Condition = @"[ArticleID] IN (SELECT [BlogArticleID] FROM [bx_BlogArticleVisitors] WHERE [UserID] = @UserID)";

                query.CreateParameter<int>("@UserID", visitorID, SqlDbType.Int);

                using (XSqlDataReader reader = query.ExecuteReader())
                {

                    BlogArticleCollection articles = new BlogArticleCollection(reader);

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

                    return articles;
                }

            }
        }
Ejemplo n.º 5
0
        public override BlogArticleCollection GetEveryoneBlogArticles(int pageNumber, int pageSize, ref int? totalCount)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "[bx_BlogArticles]";
                query.Pager.SortField = "[UpdateDate]";
                query.Pager.PrimaryKey = "[ArticleID]";
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = pageSize;
                query.Pager.TotalRecords = totalCount;
                query.Pager.IsDesc = true;
                query.Pager.SelectCount = true;
                query.Pager.Condition = " ([PrivacyType] IN (0,3))";

                using (XSqlDataReader reader = query.ExecuteReader())
                {
                    BlogArticleCollection articles = new BlogArticleCollection(reader);

                    if (totalCount == null && reader.NextResult())
                    {
                        if (reader.Read())
                        {
                            totalCount = reader.Get<int>(0);
                        }
                    }

                    articles.TotalRecords = totalCount.GetValueOrDefault();

                    return articles;
                }
            }
        }
Ejemplo n.º 6
0
        public override BlogArticleCollection GetUserBlogArticles(int userID, int? categoryID, int? tagID, DataAccessLevel dataAccessLevel, int pageNumber, int pageSize, ref int? totalCount)
        {
            using (SqlQuery query = new SqlQuery())
            {
                query.Pager.TableName = "[bx_BlogArticles]";
                query.Pager.SortField = "[ArticleID]";
                query.Pager.IsDesc = true;
                query.Pager.PageNumber = pageNumber;
                query.Pager.PageSize = pageSize;
                query.Pager.TotalRecords = totalCount;
                query.Pager.SelectCount = true;

                SqlConditionBuilder cb = new SqlConditionBuilder(SqlConditionStart.None);

                if (categoryID.HasValue)
                {
                    cb.Append("[CategoryID] = @CategoryID");

                    query.CreateParameter<int>("@CategoryID", categoryID.Value, SqlDbType.Int);

                    if (categoryID.Value == 0)
                    {
                        cb.Append("[UserID] = @UserID");

                        query.CreateParameter<int>("@UserID", userID, SqlDbType.Int);
                    }
                }
                else
                {
                    cb.Append("[UserID] = @UserID");

                    query.CreateParameter<int>("@UserID", userID, SqlDbType.Int);
                }

                if (tagID.HasValue)
                {
                    cb.Append("[ArticleID] IN (SELECT [TargetID] FROM [bx_TagRelation] WHERE [Type] = 1 AND [TagID] = @TagID)");

                    query.CreateParameter<int>("@TagID", tagID.Value, SqlDbType.Int);
                }

                if (dataAccessLevel == DataAccessLevel.Normal)
                {
                    cb.Append("[PrivacyType] IN (0, 3)");
                }
                else if (dataAccessLevel == DataAccessLevel.Friend)
                {
                    cb.Append("[PrivacyType] IN (0, 1, 3)");
                }

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

                using (XSqlDataReader reader = query.ExecuteReader())
                {

                    BlogArticleCollection articles = new BlogArticleCollection(reader);

                    if (reader.NextResult())
                    {
                        if (totalCount == null && reader.Read())
                        {
                            totalCount = reader.Get<int>(0);
                        }

                        articles.TotalRecords = totalCount.GetValueOrDefault();
                    }

                    return articles;
                }
            }
        }
Ejemplo n.º 7
0
        public override DenouncingCollection GetDenouncingWithArticle(DenouncingFilter filter, int pageNumber)
        {
            using (SqlSession db = new SqlSession())
            {
                DenouncingCollection denouncings = null;

                using (SqlQuery query = db.CreateQuery())
                {
                    query.Pager.PageNumber = pageNumber;
                    query.Pager.PageSize = filter.PageSize;
                    query.Pager.TableName = "bx_Denouncings";
                    query.Pager.SortField = "DenouncingID";
                    query.Pager.IsDesc = filter.IsDesc;
                    query.Pager.SelectCount = true;

                    filter.Type = DenouncingType.Blog;

                    GetSearchDenouncingsCondition(query, filter);

                    using (XSqlDataReader reader = query.ExecuteReader())
                    {
                        denouncings = new DenouncingCollection(reader);

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

                FillDenouncingContents(denouncings, db);

                if (denouncings.Count > 0)
                {
                    int[] targetIDs = GetTargetIDs(denouncings);

                    BlogArticleCollection articles = null;

                    using (SqlQuery query = db.CreateQuery())
                    {
                        query.CommandText = "SELECT * FROM bx_BlogArticles WHERE ArticleID IN (@IDs)";

                        query.CreateInParameter<int>("@IDs", targetIDs);

                        using (XSqlDataReader reader = query.ExecuteReader())
                        {
                            articles = new BlogArticleCollection(reader);
                        }
                    }

                    BlogBO.Instance.ProcessKeyword(articles, ProcessKeywordMode.FillOriginalText);

                    for (int i = 0; i < denouncings.Count; i++)
                    {
                        for (int j = 0; j < articles.Count; j++)
                        {
                            if (denouncings[i].TargetID == articles[j].ArticleID)
                            {
                                denouncings[i].TargetArticle = articles[j];
                                break;
                            }
                        }
                    }
                }

                return denouncings;
            }
        }
Ejemplo n.º 8
0
        public override DenouncingCollection GetDenouncingWithArticle(DenouncingFilter filter, int pageNumber)
        {
            using (SqlSession db = new SqlSession())
            {
                DenouncingCollection denouncings = null;

                using (SqlQuery query = db.CreateQuery())
                {
                    query.Pager.PageNumber  = pageNumber;
                    query.Pager.PageSize    = filter.PageSize;
                    query.Pager.TableName   = "bx_Denouncings";
                    query.Pager.SortField   = "DenouncingID";
                    query.Pager.IsDesc      = filter.IsDesc;
                    query.Pager.SelectCount = true;

                    filter.Type = DenouncingType.Blog;

                    GetSearchDenouncingsCondition(query, filter);

                    using (XSqlDataReader reader = query.ExecuteReader())
                    {
                        denouncings = new DenouncingCollection(reader);

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

                FillDenouncingContents(denouncings, db);

                if (denouncings.Count > 0)
                {
                    int[] targetIDs = GetTargetIDs(denouncings);

                    BlogArticleCollection articles = null;

                    using (SqlQuery query = db.CreateQuery())
                    {
                        query.CommandText = "SELECT * FROM bx_BlogArticles WHERE ArticleID IN (@IDs)";

                        query.CreateInParameter <int>("@IDs", targetIDs);

                        using (XSqlDataReader reader = query.ExecuteReader())
                        {
                            articles = new BlogArticleCollection(reader);
                        }
                    }

                    BlogBO.Instance.ProcessKeyword(articles, ProcessKeywordMode.FillOriginalText);

                    for (int i = 0; i < denouncings.Count; i++)
                    {
                        for (int j = 0; j < articles.Count; j++)
                        {
                            if (denouncings[i].TargetID == articles[j].ArticleID)
                            {
                                denouncings[i].TargetArticle = articles[j];
                                break;
                            }
                        }
                    }
                }

                return(denouncings);
            }
        }