CREATE PROCEDURE dbo.[Forum_Post_Add]
@ParentPostID INT,
@ForumID INT,
@UserID INT,
@RemoteAddr NVARCHAR(100),
@Subject NVARCHAR(255),
@Body NVARCHAR(MAX),
@IsPinned BIT,
@PinnedDate DATETIME,
@IsClosed BIT,
@PortalID INT,
@PollID INT,
@IsModerated BIT,
@ParseInfo INT
AS
DECLARE @PostID INT
DECLARE @ThreadID INT
DECLARE @CreatedDate DATETIME
DECLARE @ModeratedForum BIT
DECLARE @GroupID INT
DECLARE @DateApproved DATETIME
DECLARE @IsApproved BIT
SELECT @CreatedDate = GETDATE()
IF @IsModerated = 0
BEGIN
SET @IsApproved = 1
SET @DateApproved = GETDATE()
END
ELSE
BEGIN
SET @IsApproved = 0
END
IF @ParentPostID = 0
BEGIN
INSERT dbo.Forum_Posts
(
ParentPostID,
UserID,
RemoteAddr,
[Subject],
Body,
CreatedDate,
UpdatedDate,
IsApproved,
IsClosed,
DateApproved,
ParseInfo,
PostReported
)
VALUES (
@ParentPostID,
@UserID,
@RemoteAddr,
@Subject,
@Body,
@CreatedDate,
@CreatedDate,
@IsApproved,
@IsClosed,
@DateApproved,
@ParseInfo,
0
)
SET @PostID = SCOPE_IDENTITY()
SET @ThreadID = @PostID
EXEC dbo.Forum_Thread_Add @ThreadID, @ForumID, @IsPinned,
@PinnedDate, @PollID
UPDATE dbo.Forum_Posts
SET ThreadID = @ThreadID
WHERE PostID = @PostID
EXEC dbo.Forum_UserThreadsAdd @UserID, @ThreadID, @CreatedDate
END
ELSE
BEGIN
SET @ThreadID = ( SELECT ThreadID
FROM dbo.Forum_Posts
WHERE PostID = @ParentPostID
)
INSERT dbo.Forum_Posts
(
ParentPostID,
UserID,
RemoteAddr,
[Subject],
Body,
CreatedDate,
ThreadID,
UpdatedDate,
IsApproved,
IsClosed,
DateApproved,
ParseInfo,
PostReported
)
VALUES (
@ParentPostID,
@UserID,
@RemoteAddr,
@Subject,
@Body,
@CreatedDate,
@ThreadID,
@CreatedDate,
@IsApproved,
@IsClosed,
@DateApproved,
@ParseInfo,
0
)
SELECT @PostID = @@IDENTITY
IF @IsModerated = 0
BEGIN
EXEC dbo.Forum_AA_ThreadUpdate @ThreadID, @PostID,
@IsPinned, @PinnedDate, 'postadd', @PollID
END
END
IF @IsModerated = 0
BEGIN
EXEC dbo.Forum_AA_UserPostCountUpdate @UserID, @PortalID
EXEC dbo.Forum_Forum_PostAdded @ForumID, @ThreadID, @PostID,
@UserID, 'add'
END
ELSE
BEGIN
EXEC dbo.Forum_Forum_PostAdded @ForumID, @ThreadID, @PostID,
@UserID, 'submit'
END
SELECT @PostID
GO