diff --git a/Dnn.CommunityForums/DnnCommunityForums.csproj b/Dnn.CommunityForums/DnnCommunityForums.csproj
index 428029f5a..124102fa4 100644
--- a/Dnn.CommunityForums/DnnCommunityForums.csproj
+++ b/Dnn.CommunityForums/DnnCommunityForums.csproj
@@ -12,8 +12,8 @@
Discussion Forum Module for DNN
dnncommunity.org
dnncommunity.org
- 09.01.00.00
- 09.01.00.00
+ 09.01.01.00
+ 09.01.01.00
False
True
diff --git a/Dnn.CommunityForums/DnnCommunityForums.dnn b/Dnn.CommunityForums/DnnCommunityForums.dnn
index 37076b790..25eeaebdc 100644
--- a/Dnn.CommunityForums/DnnCommunityForums.dnn
+++ b/Dnn.CommunityForums/DnnCommunityForums.dnn
@@ -1,6 +1,6 @@
-
+
DNN Community Forums
DNN Community Forums: The official online forums module for the DNN Community.
DesktopModules/ActiveForums/images/branding/logo/DNN-Community-Forums-Icon-64px.png
@@ -86,7 +86,7 @@
DotNetNuke.Modules.ActiveForums.dll
bin\DotNetNuke.Modules.ActiveForums.dll
- 09.01.00
+ 09.01.01
@@ -486,7 +486,7 @@
-
+
DNN Community Forums What's New
ActiveForumsWhatsNew
DNN Community Forums: Display the most recent topics or replies from selected forums on any page within your site.
@@ -555,7 +555,7 @@
-
+
DNN Community Forums Forums Viewer
ActiveForumsViewer
DNN Community Forums: Display any forum topic view on any page within your site.
diff --git a/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn b/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn
index 14f1603c5..7a9340c9a 100644
--- a/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn
+++ b/Dnn.CommunityForums/DnnCommunityForums_Symbols.dnn
@@ -1,6 +1,6 @@
-
+
DNN Community Forums Symbols
DNN Community Forums: The official online forums module for the DNN Community.
DesktopModules/ActiveForums/images/branding/logo/DNN-Community-Forums-Icon-64px.png
@@ -14,7 +14,7 @@
True
- Active Forums
+ Active Forums
diff --git a/Dnn.CommunityForums/ReleaseNotes.txt b/Dnn.CommunityForums/ReleaseNotes.txt
index 59a60fb78..429149212 100644
--- a/Dnn.CommunityForums/ReleaseNotes.txt
+++ b/Dnn.CommunityForums/ReleaseNotes.txt
@@ -46,8 +46,9 @@
DNN Community Forums Release Notes
- 09.01.00
+ 09.01.01
+
UPDATE: Improved handling of XML & HTML in posts (Issue 1385)
UPDATE: Changed "subscribe" to tokenized controls in topic and topics views to allow checkboxes or buttons (Issue 1556 & Issue 1568)
-
None at this time.
--->
Bug Fixes
- - FIX: Update indexes on forum/topic tracking tables for uniqueness; upgrade script to detect and remove duplicates, keeping the latest entries (Issue 1434)
- - FIX: Friendly URLs updated to working correctly with Forum Viewer and/or localized sites (Issue 1557)
- - FIX: Incorrect logic in permissions checking for attachments (Issue 1559)
- - FIX: Non-Admin/Non-Moderator is unable to edit their own post when edit interval/spam control feature used (Issue 1562)
- - FIX: Subscribe controls not working from viewer module (Issue 1572)
+ - FIX: Poor performance for avatar refresh queue on large sites (Issue 1584)
+ - None at this time.
diff --git a/Dnn.CommunityForums/Services/Avatars/AvatarRefreshQueue.cs b/Dnn.CommunityForums/Services/Avatars/AvatarRefreshQueue.cs
index c878c8237..e83e92f9e 100644
--- a/Dnn.CommunityForums/Services/Avatars/AvatarRefreshQueue.cs
+++ b/Dnn.CommunityForums/Services/Avatars/AvatarRefreshQueue.cs
@@ -25,9 +25,12 @@ namespace DotNetNuke.Modules.ActiveForums.Services.Avatars
using System;
using System.Collections.Generic;
using System.Linq;
+
+ using DotNetNuke.Data;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Services.Log.EventLog;
using DotNetNuke.Services.Scheduling;
+ using DotNetNuke.UI.UserControls;
public class AvatarRefreshQueue : DotNetNuke.Services.Scheduling.SchedulerClient
{
@@ -96,10 +99,28 @@ private static int RefreshGravatars(int portalId, int moduleId)
{
try
{
- return new DotNetNuke.Modules.ActiveForums.Controllers.ForumUserController(moduleId: moduleId).Get().Where(u => (u.PortalId == portalId && !u.UserInfo.IsDeleted && !u.AvatarDisabled && !u.PrefBlockAvatars) &&
- ((string.IsNullOrEmpty(u.UserInfo.Profile.GetPropertyValue("Photo")) && !u.AvatarLastRefresh.HasValue) || /* anyone without an avatar who has never had their avatar refreshed */
- (u.AvatarLastRefresh.HasValue && DateTime.UtcNow.Subtract(u.AvatarLastRefresh.Value).TotalDays > 90))) /* or anyone whose avatar was last refreshed more than 90 days ago */
- .OrderByDescending(u => u.AvatarLastRefresh).Take(50).ToList();
+ var forumUserController = new DotNetNuke.Modules.ActiveForums.Controllers.ForumUserController(moduleId: moduleId);
+ string sSql = "SELECT TOP 50 fup.UserId FROM {databaseOwner}{objectQualifier}activeforums_UserProfiles fup ";
+ sSql += "INNER JOIN {databaseOwner}{objectQualifier}UserPortals as up ON up.PortalId = fup.PortalId AND up.UserId = fup.UserId AND up.IsDeleted = 0 ";
+ sSql += "INNER JOIN {databaseOwner}{objectQualifier}ProfilePropertyDefinition ppd ON ppd.PortalID = @0 AND ppd.PropertyName = 'Photo' ";
+ sSql += "LEFT OUTER JOIN {databaseOwner}{objectQualifier}UserProfile as upr ON upr.UserId = fup.UserId AND upr.PropertyDefinitionID = ppd.PropertyDefinitionID ";
+ sSql += "WHERE fup.PortalId = @0 AND fup.AvatarDisabled = 0 AND fup.PrefBlockAvatars = 0 ";
+ sSql += "AND ( (fup.AvatarLastRefresh IS NULL AND upr.PropertyValue IS NULL) ";
+ sSql += " OR (fup.AvatarLastRefresh IS NOT NULL AND DATEDIFF(dd,GETUTCDATE(),fup.AvatarLastRefresh) > 90) ) ";
+ sSql += "ORDER BY fup.AvatarLastRefresh DESC";
+ var userIds = DotNetNuke.Data.DataContext.Instance().ExecuteQuery(System.Data.CommandType.Text, sSql, portalId);
+
+ var users = new List();
+ foreach (var userId in userIds)
+ {
+ var forumUser = forumUserController.GetByUserId(portalId: portalId, userId: userId);
+ if (forumUser != null)
+ {
+ users.Add(forumUser);
+ }
+ }
+
+ return users;
}
catch (Exception ex)
{
diff --git a/README.md b/README.md
index ca921f67f..e8ec99f72 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Community Forums Module
+# DNN Community Forums Module

diff --git a/ResXManager.config.xml b/ResXManager.config.xml
deleted file mode 100644
index 18e3c612b..000000000
--- a/ResXManager.config.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- False
-
\ No newline at end of file