public override ShareCollection GetHotShares(ShareType? shareType, DateTime? beginDate, HotShareSortType sortType, int pageNumber, int pageSize, out int totalCount) { using (SqlQuery query = new SqlQuery()) { query.Pager.TableName = "[bx_SharesView]"; query.Pager.PrimaryKey = "[UserShareID]"; if (sortType == HotShareSortType.ShareCount) query.Pager.SortField = "ShareCount"; else query.Pager.SortField = " [AgreeAndOpposeCount] "; query.Pager.PageNumber = pageNumber; query.Pager.PageSize = pageSize; query.Pager.IsDesc = true; query.Pager.SelectCount = true; StringBuilder sql = new StringBuilder(" UserShareID IN(SELECT MIN(UserShareID) FROM bx_SharesView WHERE "); if (shareType.HasValue && shareType.Value != ShareType.All) { sql.Append(" [Type] = @Type AND "); query.CreateParameter<ShareType>("@Type", shareType.Value, SqlDbType.TinyInt); } if (beginDate != null) { sql.Append(" [CreateDate] >= @BeginDate AND "); query.CreateParameter<DateTime>("@BeginDate", beginDate.Value, SqlDbType.DateTime); } sql.Append(" [PrivacyType] = 0 GROUP BY ShareID) "); query.Pager.Condition = sql.ToString(); ShareCollection shares; totalCount = 0; using (XSqlDataReader reader = query.ExecuteReader()) { shares = new ShareCollection(reader); if (reader.NextResult()) { if (reader.Read()) { totalCount = reader.Get<int>(0); } } } FillComments(shares, query); return shares; } }
public abstract ShareCollection GetHotShares(ShareType?shareType, DateTime?beginDate, HotShareSortType sortType, int pageNumber, int pageSize, out int totalCount);