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