public void Save(bool silent) { if (Id == 0) { if (Library.Utills.IsMember(MemberId) && !string.IsNullOrEmpty(Title) && !string.IsNullOrEmpty(Body)) { var createEventArgs = new CreateEventArgs(); FireBeforeCreate(createEventArgs); if (createEventArgs.Cancel == false) { UrlName = umbraco.cms.helpers.url.FormatUrl(Title); Data.SqlHelper.ExecuteNonQuery("INSERT INTO forumTopics (parentId, memberId, title, urlName, body, latestReplyAuthor) VALUES(@parentId, @memberId, @title, @urlname, @body, @latestReplyAuthor)", Data.SqlHelper.CreateParameter("@parentId", ParentId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@title", Title), Data.SqlHelper.CreateParameter("@urlname", UrlName), Data.SqlHelper.CreateParameter("@latestReplyAuthor", LatestReplyAuthor), Data.SqlHelper.CreateParameter("@body", Body) ); Created = DateTime.Now; Updated = DateTime.Now; Id = Data.SqlHelper.ExecuteScalar<int>("SELECT MAX(id) FROM forumTopics WHERE memberId = @memberId", Data.SqlHelper.CreateParameter("@memberId", MemberId)); var forum = new Forum(ParentId); if (forum.Exists) { forum.SetLatestTopic(Id); forum.SetLatestAuthor(MemberId); forum.LatestPostDate = DateTime.Now; forum.Save(); } FireAfterCreate(createEventArgs); } } } else { var updateEventArgs = new UpdateEventArgs(); FireBeforeUpdate(updateEventArgs); if (updateEventArgs.Cancel == false) { var totalComments = Data.SqlHelper.ExecuteScalar<int>("SELECT count(id) from forumComments where topicId = @id", Data.SqlHelper.CreateParameter("@id", Id)); LatestReplyAuthor = Data.SqlHelper.ExecuteScalar<int>("SELECT TOP 1 memberId FROM forumComments WHERE (topicId= @id) ORDER BY Created DESC ", Data.SqlHelper.CreateParameter("@id", Id)); LatestComment = Data.SqlHelper.ExecuteScalar<int>("SELECT TOP 1 id FROM forumComments WHERE (topicId= @id) ORDER BY Created DESC ", Data.SqlHelper.CreateParameter("@id", Id)); UrlName = umbraco.cms.helpers.url.FormatUrl(Title); if (silent == false) Updated = DateTime.Now; Data.SqlHelper.ExecuteNonQuery("UPDATE forumTopics SET replies = @replies, parentId = @parentId, memberId = @memberId, title = @title, urlname = @urlname, body = @body, updated = @updated, locked = @locked, latestReplyAuthor = @latestReplyAuthor, latestComment = @latestComment WHERE id = @id", Data.SqlHelper.CreateParameter("@parentId", ParentId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@title", Title), Data.SqlHelper.CreateParameter("@urlname", UrlName), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@id", Id), Data.SqlHelper.CreateParameter("@updated", Updated), Data.SqlHelper.CreateParameter("@latestReplyAuthor", LatestReplyAuthor), Data.SqlHelper.CreateParameter("@latestComment", LatestComment), Data.SqlHelper.CreateParameter("@locked", Locked), Data.SqlHelper.CreateParameter("@replies", totalComments) ); UpdateCommentsPosition(); FireAfterUpdate(updateEventArgs); } } }
public void Save(bool silent, bool dontMarkAsSpam) { if (Id == 0) { if (Library.Utills.IsMember(MemberId) && !string.IsNullOrEmpty(Title) && !string.IsNullOrEmpty(Body)) { var createEventArgs = new CreateEventArgs(); FireBeforeCreate(createEventArgs); if (createEventArgs.Cancel) { return; } UrlName = umbraco.cms.helpers.url.FormatUrl(Title); Data.SqlHelper.ExecuteNonQuery("INSERT INTO forumTopics (parentId, memberId, title, urlName, body, latestReplyAuthor, isSpam) VALUES(@parentId, @memberId, @title, @urlname, @body, @latestReplyAuthor, @isSpam)", Data.SqlHelper.CreateParameter("@parentId", ParentId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@title", Title), Data.SqlHelper.CreateParameter("@urlname", UrlName), Data.SqlHelper.CreateParameter("@latestReplyAuthor", LatestReplyAuthor), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@isSpam", dontMarkAsSpam ? false : Forum.IsSpam(MemberId, string.Format("{0} - {1}", Title, Body), "topic")) ); Created = DateTime.Now; Updated = DateTime.Now; Id = Data.SqlHelper.ExecuteScalar <int>("SELECT MAX(id) FROM forumTopics WHERE memberId = @memberId", Data.SqlHelper.CreateParameter("@memberId", MemberId)); var forum = new Forum(ParentId); if (forum.Exists) { forum.SetLatestTopic(Id); forum.SetLatestAuthor(MemberId); forum.LatestPostDate = DateTime.Now; forum.Save(); } // save tags Tag.AddTagsToTopic(Id, Tags); FireAfterCreate(createEventArgs); } } else { var updateEventArgs = new UpdateEventArgs(); FireBeforeUpdate(updateEventArgs); if (updateEventArgs.Cancel == false) { var totalComments = Data.SqlHelper.ExecuteScalar <int>("SELECT count(id) from forumComments where (forumComments.isSpam IS NULL OR forumComments.isSpam != 1) AND topicId = @id", Data.SqlHelper.CreateParameter("@id", Id)); LatestReplyAuthor = Data.SqlHelper.ExecuteScalar <int>("SELECT TOP 1 memberId FROM forumComments WHERE (forumComments.isSpam IS NULL OR forumComments.isSpam != 1) AND (topicId= @id) ORDER BY Created DESC ", Data.SqlHelper.CreateParameter("@id", Id)); LatestComment = Data.SqlHelper.ExecuteScalar <int>("SELECT TOP 1 id FROM forumComments WHERE (forumComments.isSpam IS NULL OR forumComments.isSpam != 1) AND (topicId= @id) ORDER BY Created DESC ", Data.SqlHelper.CreateParameter("@id", Id)); UrlName = umbraco.cms.helpers.url.FormatUrl(Title); if (silent == false) { Updated = DateTime.Now; } Data.SqlHelper.ExecuteNonQuery("UPDATE forumTopics SET replies = @replies, parentId = @parentId, memberId = @memberId, title = @title, urlname = @urlname, body = @body, updated = @updated, locked = @locked, latestReplyAuthor = @latestReplyAuthor, latestComment = @latestComment, isSpam = @isSpam WHERE id = @id", Data.SqlHelper.CreateParameter("@parentId", ParentId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@title", Title), Data.SqlHelper.CreateParameter("@urlname", UrlName), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@id", Id), Data.SqlHelper.CreateParameter("@updated", Updated), Data.SqlHelper.CreateParameter("@latestReplyAuthor", LatestReplyAuthor), Data.SqlHelper.CreateParameter("@latestComment", LatestComment), Data.SqlHelper.CreateParameter("@locked", Locked), Data.SqlHelper.CreateParameter("@replies", totalComments), Data.SqlHelper.CreateParameter("@isSpam", dontMarkAsSpam ? false : Forum.IsSpam(MemberId, string.Format("{0} - {1}", Title, Body), "topic")) ); // save tags Tag.AddTagsToTopic(Id, Tags); UpdateCommentsPosition(); FireAfterUpdate(updateEventArgs); } } }
public void Save() { if (Id == 0) { if (Library.Utills.IsMember(MemberId) && !string.IsNullOrEmpty(Body)) { CreateEventArgs e = new CreateEventArgs(); FireBeforeCreate(e); if (!e.Cancel) { Data.SqlHelper.ExecuteNonQuery("INSERT INTO forumComments (topicId, memberId, body, position) VALUES(@topicId, @memberId, @body, @position)", Data.SqlHelper.CreateParameter("@topicId", TopicId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@position", Position) ); Created = DateTime.Now; Id = Data.SqlHelper.ExecuteScalar<int>("SELECT MAX(id) FROM forumComments WHERE memberId = @memberId", Data.SqlHelper.CreateParameter("@memberId", MemberId)); Topic t = Topic.GetTopic(TopicId); if (t.Exists) { t.Save(); } Forum f = new Forum(t.ParentId); if (f.Exists) { f.SetLatestComment(Id); f.SetLatestTopic(t.Id); f.SetLatestAuthor(MemberId); f.LatestPostDate = DateTime.Now; f.Save(); } FireAfterCreate(e); } } } else { UpdateEventArgs e = new UpdateEventArgs(); FireBeforeUpdate(e); if (!e.Cancel) { Data.SqlHelper.ExecuteNonQuery("UPDATE forumComments SET topicId = @topicId, memberId = @memberId, body = @body WHERE id = @id", Data.SqlHelper.CreateParameter("@topicId", TopicId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@id", Id) ); FireAfterUpdate(e); } } }
public void Save(bool dontMarkAsSpam) { if (Id == 0) { if (Library.Utills.IsMember(MemberId) && !string.IsNullOrEmpty(Body)) { CreateEventArgs e = new CreateEventArgs(); FireBeforeCreate(e); if (e.Cancel) { return; } Data.SqlHelper.ExecuteNonQuery("INSERT INTO forumComments (topicId, memberId, body, position, isSpam) VALUES(@topicId, @memberId, @body, @position, @isSpam)", Data.SqlHelper.CreateParameter("@topicId", TopicId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@position", Position), Data.SqlHelper.CreateParameter("@isSpam", dontMarkAsSpam ? false : Forum.IsSpam(MemberId, Body, "comment")) ); Created = DateTime.Now; Id = Data.SqlHelper.ExecuteScalar <int>("SELECT MAX(id) FROM forumComments WHERE memberId = @memberId", Data.SqlHelper.CreateParameter("@memberId", MemberId)); Topic t = Topic.GetTopic(TopicId); if (t.Exists) { t.Save(); } Forum f = new Forum(t.ParentId); if (f.Exists) { f.SetLatestComment(Id); f.SetLatestTopic(t.Id); f.SetLatestAuthor(MemberId); f.LatestPostDate = DateTime.Now; f.Save(); } FireAfterCreate(e); } } else { UpdateEventArgs e = new UpdateEventArgs(); FireBeforeUpdate(e); if (!e.Cancel) { Data.SqlHelper.ExecuteNonQuery("UPDATE forumComments SET topicId = @topicId, memberId = @memberId, body = @body, isSpam = @isSpam WHERE id = @id", Data.SqlHelper.CreateParameter("@topicId", TopicId), Data.SqlHelper.CreateParameter("@memberId", MemberId), Data.SqlHelper.CreateParameter("@body", Body), Data.SqlHelper.CreateParameter("@id", Id), Data.SqlHelper.CreateParameter("@isSpam", dontMarkAsSpam ? false : Forum.IsSpam(MemberId, Body, "comment")) ); FireAfterUpdate(e); } } }