
[dbo].[Forum_Post_GetAll]
CREATE PROCEDURE dbo.[Forum_Post_GetAll]
(
@ThreadID INT,
@PageIndex INT,
@PageSize INT,
@Descending BIT,
@PortalID INT
)
AS
BEGIN
DECLARE @RowStart INT
DECLARE @RowEnd INT
SET @RowStart = @PageSize * @PageIndex + 1 ;
SET @RowEnd = @RowStart + @PageSize - 1 ;
IF @Descending = 1
BEGIN
SELECT *
FROM ( SELECT PostID,
ParentPostID,
UserID,
RemoteAddr,
[Subject],
Body,
CreatedDate,
ThreadID,
UpdatedDate,
UpdatedByUser,
IsApproved,
IsLocked,
IsClosed,
DateApproved,
PostReported,
Addressed,
ParseInfo,
ROW_NUMBER() OVER ( ORDER BY CreatedDate DESC ) AS RowNumber,
( SELECT COUNT(PostID)
FROM dbo.Forum_Posts
WHERE ThreadID = @ThreadID
) AS TotalRecords
FROM dbo.Forum_Posts P
WHERE ThreadID = @ThreadID
AND P.IsApproved = 1
) AS PostInfo
WHERE RowNumber >= @RowStart
AND RowNumber <= @RowEnd
END
ELSE
BEGIN
SELECT *
FROM ( SELECT PostID,
ParentPostID,
UserID,
RemoteAddr,
[Subject],
Body,
CreatedDate,
ThreadID,
UpdatedDate,
UpdatedByUser,
IsApproved,
IsLocked,
IsClosed,
DateApproved,
PostReported,
Addressed,
ParseInfo,
ROW_NUMBER() OVER ( ORDER BY CreatedDate ASC ) AS RowNumber,
( SELECT COUNT(PostID)
FROM dbo.Forum_Posts
WHERE ThreadID = @ThreadID
) AS TotalRecords
FROM dbo.Forum_Posts P
WHERE ThreadID = @ThreadID
AND P.IsApproved = 1
) AS PostInfo
WHERE RowNumber >= @RowStart
AND RowNumber <= @RowEnd
END
END
GO