From 2d0e197c6b114266dc47c42a3294f163d1b9a112 Mon Sep 17 00:00:00 2001 From: John Henley Date: Thu, 19 Jun 2025 17:22:18 +0000 Subject: [PATCH] TASK: Remove unused columns from activeforums_Forums table --- Dnn.CommunityForums/DnnCommunityForums.dnn | 7 ++++- Dnn.CommunityForums/Entities/ForumInfo.cs | 19 ++++++------ .../sql/09.01.00.SqlDataProvider | 31 +++++++++++++++++++ 3 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 Dnn.CommunityForums/sql/09.01.00.SqlDataProvider diff --git a/Dnn.CommunityForums/DnnCommunityForums.dnn b/Dnn.CommunityForums/DnnCommunityForums.dnn index 9f04cea8..f5782761 100644 --- a/Dnn.CommunityForums/DnnCommunityForums.dnn +++ b/Dnn.CommunityForums/DnnCommunityForums.dnn @@ -424,10 +424,15 @@ 09.00.00.SqlDataProvider 09.00.00 + diff --git a/Dnn.CommunityForums/Entities/ForumInfo.cs b/Dnn.CommunityForums/Entities/ForumInfo.cs index 383f7517..0f4f5dac 100644 --- a/Dnn.CommunityForums/Entities/ForumInfo.cs +++ b/Dnn.CommunityForums/Entities/ForumInfo.cs @@ -160,6 +160,7 @@ public string LastPostTopicUrl [IgnoreColumn] public bool LastPostIsTopic => this.LastReplyId == 0; + [IgnoreColumn] public string LastPostSubject { get @@ -222,15 +223,15 @@ internal DotNetNuke.Modules.ActiveForums.Entities.IPostInfo LoadLastPost() // return this.lastPostInfo = this.LastReplyId == 0 ? (DotNetNuke.Modules.ActiveForums.Entities.IPostInfo)new DotNetNuke.Modules.ActiveForums.Controllers.TopicController(this.ModuleId).GetById(this.LastTopicId) : new DotNetNuke.Modules.ActiveForums.Controllers.ReplyController(this.ModuleId).GetById(this.LastReplyId); } - - [ColumnName("LastPostAuthorName")] - public string LastPostUserName { get; set; } - - [ColumnName("LastPostAuthorId")] - public int LastPostUserID { get; set; } - - [ColumnName("LastPostDate")] - public DateTime? LastPostDateTime { get; set; } + + [IgnoreColumn] + public string LastPostUserName => this.LastPost != null && this.LastPost.Content != null ? this.LastPost.Content.AuthorName : string.Empty; + + [IgnoreColumn] + public int LastPostUserID => this.LastPost != null && this.LastPost.Content != null ? this.LastPost.Content.AuthorId : DotNetNuke.Common.Utilities.Null.NullInteger; + + [IgnoreColumn] + public DateTime? LastPostDateTime => this.LastPost != null && this.LastPost.Content != null ? (DateTime)this.LastPost.Content.DateUpdated : DotNetNuke.Common.Utilities.Null.NullDate; public int PermissionsId { get; set; } diff --git a/Dnn.CommunityForums/sql/09.01.00.SqlDataProvider b/Dnn.CommunityForums/sql/09.01.00.SqlDataProvider new file mode 100644 index 00000000..b3c4a2bb --- /dev/null +++ b/Dnn.CommunityForums/sql/09.01.00.SqlDataProvider @@ -0,0 +1,31 @@ +SET NOCOUNT ON +GO + +/* issue 792 begin - activeforums_Forums -- remove columns no longer used */ + +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_{objectQualifier}activeforums_Forums_LastPostId]') AND type = 'D') +ALTER TABLE {databaseOwner}{objectQualifier}activeforums_Forums DROP CONSTRAINT DF_{objectQualifier}activeforums_Forums_LastPostId +GO +IF EXISTS(SELECT * FROM sys.columns WHERE [name] = N'LastPostId' AND [object_id] = OBJECT_ID(N'{databaseOwner}[{objectQualifier}activeforums_Forums]')) +ALTER TABLE {databaseOwner}[{objectQualifier}activeforums_Forums] DROP COLUMN LastPostId +GO +IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DF_{objectQualifier}activeforums_Forums_LastPostAuthorId]') AND type = 'D') +ALTER TABLE {databaseOwner}{objectQualifier}activeforums_Forums DROP CONSTRAINT DF_{objectQualifier}activeforums_Forums_LastPostAuthorId +GO +IF EXISTS(SELECT * FROM sys.columns WHERE [name] = N'LastPostAuthorId' AND [object_id] = OBJECT_ID(N'{databaseOwner}[{objectQualifier}activeforums_Forums]')) +ALTER TABLE {databaseOwner}[{objectQualifier}activeforums_Forums] DROP COLUMN LastPostAuthorId +GO +IF EXISTS(SELECT * FROM sys.columns WHERE [name] = N'LastPostAuthorName' AND [object_id] = OBJECT_ID(N'{databaseOwner}[{objectQualifier}activeforums_Forums]')) +ALTER TABLE {databaseOwner}[{objectQualifier}activeforums_Forums] DROP COLUMN LastPostAuthorName +GO +IF EXISTS(SELECT * FROM sys.columns WHERE [name] = N'LastPostSubject' AND [object_id] = OBJECT_ID(N'{databaseOwner}[{objectQualifier}activeforums_Forums]')) +ALTER TABLE {databaseOwner}[{objectQualifier}activeforums_Forums] DROP COLUMN LastPostSubject +GO +IF EXISTS(SELECT * FROM sys.columns WHERE [name] = N'LastPostDate' AND [object_id] = OBJECT_ID(N'{databaseOwner}[{objectQualifier}activeforums_Forums]')) +ALTER TABLE {databaseOwner}[{objectQualifier}activeforums_Forums] DROP COLUMN LastPostDate +GO + +/* issue 792 end - activeforums_Forums -- remove columns no longer used */ + +/* --------------------- */ +