Skip to content

Commit 3a47604

Browse files
committed
Replaced obsolete API usages as of DNN 8.0.4
Replaced obsolete API usages as of DNN 8.0.4 The module currently targets DNN 8.0.4 and was already using obsolete APIs in the current state targetting this version (sometimes deprecated in DNN6!!!) This refactors those usages to use the APIs available in v8.0.4. After this PR is merged, I'll start updating DNN dependencies.
1 parent 592d67b commit 3a47604

8 files changed

Lines changed: 110 additions & 126 deletions

File tree

BusinessObjects/Models/Topic.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ public string UpdatedByUsername
283283
get
284284
{
285285
UserInfo user = UserController.GetUserById(
286-
PortalController.GetCurrentPortalSettings().PortalId,
286+
PortalController.Instance.GetCurrentPortalSettings().PortalId,
287287
this.UpdatedByUserID);
288288
if (user != null)
289289
{

BusinessObjects/Models/TopicHistory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ public string UpdatedByUsername
209209
get
210210
{
211211
UserInfo user = UserController.GetUserById(
212-
PortalController.GetCurrentPortalSettings().PortalId,
212+
PortalController.Instance.GetCurrentPortalSettings().PortalId,
213213
this.UpdatedByUserID);
214214
if (user != null)
215215
{

BusinessObjects/TopicBO.cs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#endregion Copyright
2525

2626
using DotNetNuke.Entities.Users;
27+
using DotNetNuke.Security.Roles;
2728
using DotNetNuke.Wiki.BusinessObjects.Models;
2829
using DotNetNuke.Wiki.Utilities;
2930
using System.Collections.Generic;
@@ -179,14 +180,16 @@ public List<string> GetNotificationEmails(Topic topic)
179180
// Compile our view users, only if enabled
180181
if (fetchViewUsers)
181182
{
182-
foreach (string role in objModule.AuthorizedViewRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
183+
var viewRoleNames = objModule.ModulePermissions
184+
.Where(p => p.PermissionKey == "VIEW" && p.AllowAccess)
185+
.Select(p => p.RoleName);
186+
foreach (var role in viewRoleNames)
183187
{
184188
if (role.ToLower().Equals("all users"))
185189
{
186190
// Trap against fake roles
187-
var arrUsers =
188-
DotNetNuke.Entities.Users.UserController.GetUsers(DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings().PortalId).OfType<UserInfo>();
189-
foreach (DotNetNuke.Entities.Users.UserInfo objUser in arrUsers)
191+
var arrUsers = UserController.GetUsers(DotNetNuke.Entities.Portals.PortalController.Instance.GetCurrentPortalSettings().PortalId).OfType<UserInfo>();
192+
foreach (var objUser in arrUsers)
190193
{
191194
if (!lstUsers.Contains(objUser.Email))
192195
{
@@ -197,12 +200,13 @@ public List<string> GetNotificationEmails(Topic topic)
197200
else
198201
{
199202
// This role should be legit
200-
foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in
201-
objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
203+
var roleInfo = objRoles.GetRoleByName(objModule.PortalID, role);
204+
var usersInRole = RoleController.Instance.GetUsersByRole(objModule.PortalID, roleInfo.RoleName);
205+
foreach (var user in usersInRole)
202206
{
203-
if (!lstUsers.Contains(objUserRole.Email))
207+
if (!lstUsers.Contains(user.Email))
204208
{
205-
lstUsers.Add(objUserRole.Email);
209+
lstUsers.Add(user.Email);
206210
}
207211
}
208212
}
@@ -215,20 +219,24 @@ public List<string> GetNotificationEmails(Topic topic)
215219
if (fetchUsingDNNRoles)
216220
{
217221
// Fetch using dnn edit roles
218-
foreach (string role in objModule.AuthorizedEditRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
222+
var editRoles = objModule.ModulePermissions
223+
.Where(p => p.PermissionKey == "EDIT" && p.AllowAccess)
224+
.Select(p => p.RoleName);
225+
foreach (string role in editRoles)
219226
{
220227
if (role.ToLower().Equals("all users"))
221228
{
222229
// Trap against fake roles
223230
}
224231
else
225232
{
233+
var usersInRole = RoleController.Instance.GetUsersByRole(objModule.PortalID, role);
226234
// This role should be legit
227-
foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
235+
foreach (var user in usersInRole)
228236
{
229-
if (!lstUsers.Contains(objUserRole.Email))
237+
if (!lstUsers.Contains(user.Email))
230238
{
231-
lstUsers.Add(objUserRole.Email);
239+
lstUsers.Add(user.Email);
232240
}
233241
}
234242
}
@@ -239,11 +247,12 @@ public List<string> GetNotificationEmails(Topic topic)
239247
// Fetch using custom wiki edit roles
240248
foreach (string role in wikiSettings.ContentEditorRoles.Trim(new char[] { ';' }).Split(new char[] { ';' }))
241249
{
242-
foreach (DotNetNuke.Entities.Users.UserRoleInfo objUserRole in objRoles.GetUserRolesByRoleName(objModule.PortalID, role))
250+
var usersInRole = RoleController.Instance.GetUsersByRole(objModule.PortalID, role);
251+
foreach (var user in usersInRole)
243252
{
244-
if (!lstUsers.Contains(objUserRole.Email))
253+
if (!lstUsers.Contains(user.Email))
245254
{
246-
lstUsers.Add(objUserRole.Email);
255+
lstUsers.Add(user.Email);
247256
}
248257
}
249258
}

BusinessObjects/UnitOfWork.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public UnitOfWork()
8282

8383
if (HttpContext.Current != null && HttpContext.Current.User.Identity.IsAuthenticated)
8484
{
85-
this.mCurrentUser = UserController.GetCurrentUserInfo();
85+
this.mCurrentUser = UserController.Instance.GetCurrentUserInfo();
8686
}
8787
}
8888

Utilities/DNNUtils.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using DotNetNuke.Common;
2727
using DotNetNuke.Common.Utilities;
2828
using DotNetNuke.Entities.Host;
29+
using DotNetNuke.Entities.Modules;
2930
using DotNetNuke.Entities.Portals;
3031
using DotNetNuke.Entities.Users;
3132
using DotNetNuke.Services.Journal;
@@ -67,7 +68,7 @@ public static void SendNotifications(
6768

6869
if (lstEmailsAddresses.Count > 0)
6970
{
70-
DotNetNuke.Entities.Portals.PortalSettings objPortalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
71+
var objPortalSettings = PortalController.Instance.GetCurrentPortalSettings();
7172
string strResourceFile = Globals.ApplicationPath + "/DesktopModules/Wiki/Views/" + Localization.LocalResourceDirectory + "/" + Localization.LocalSharedResourceFile;
7273
string strSubject = Localization.GetString("NotificationSubject", strResourceFile);
7374
string strBody = Localization.GetString("NotificationBody", strResourceFile);
@@ -130,11 +131,12 @@ public static void PostTopicCommentToJournal(
130131
string linkToTopic,
131132
int currentTab,
132133
string topicName,
133-
SharedEnum.DNNJournalType journalType)
134+
SharedEnum.DNNJournalType journalType,
135+
ModuleInfo moduleInfo)
134136
{
135137
if (HttpContext.Current != null && HttpContext.Current.User.Identity.IsAuthenticated)
136138
{
137-
UserInfo user = UserController.GetCurrentUserInfo();
139+
UserInfo user = UserController.Instance.GetCurrentUserInfo();
138140
if (user != null)
139141
{
140142
// Post to DotnetNuke Journal
@@ -159,7 +161,7 @@ public static void PostTopicCommentToJournal(
159161
//// http: //www.dnnsoftware.com/wiki/loc/history/Page/Journal/Revision/11
160162

161163
journalItem.Title = topicName;
162-
journalController.SaveJournalItem(journalItem, currentTab); // saving
164+
journalController.SaveJournalItem(journalItem, moduleInfo);
163165
}
164166
}
165167
}

Utilities/FeatureController.cs

Lines changed: 71 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,12 @@
2929
using DotNetNuke.Entities.Portals;
3030
using DotNetNuke.Entities.Users;
3131
using DotNetNuke.Services.Localization;
32-
using DotNetNuke.Services.Search;
32+
using DotNetNuke.Services.Search.Entities;
3333
using DotNetNuke.Wiki.BusinessObjects;
3434
using DotNetNuke.Wiki.BusinessObjects.Models;
3535
using System;
3636
using System.Collections;
37+
using System.Collections.Generic;
3738
using System.IO;
3839
using System.Web;
3940
using System.Xml;
@@ -51,90 +52,11 @@ namespace DotNetNuke.Wiki.Utilities
5152
/// populate with your own data.</para> <para>uncomment the interfaces to add the support.
5253
/// </para>
5354
/// </summary>
54-
public class FeatureController : IPortable, ISearchable // , IUpgradeable
55+
public class FeatureController : ModuleSearchBase, IPortable // , IUpgradeable
5556
{
56-
//// Implements IUpgradeable
57-
58-
#region Variables
59-
6057
private string mSharedResourceFile =
6158
DotNetNuke.Common.Globals.ApplicationPath + "/DesktopModules/Wiki/Views/" + Localization.LocalResourceDirectory + "/" + Localization.LocalSharedResourceFile;
6259

63-
#endregion Variables
64-
65-
#region Methods
66-
67-
/// <summary>
68-
/// Gets the search items.
69-
/// </summary>
70-
/// <param name="modInfo">The module information.</param>
71-
/// <returns>Topics that meet the search criteria.</returns>
72-
public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo)
73-
{
74-
using (UnitOfWork uOw = new UnitOfWork())
75-
{
76-
TopicBO topicBo = new TopicBO(uOw);
77-
78-
SearchItemInfoCollection searchItemCollection = new SearchItemInfoCollection();
79-
var topics = topicBo.GetAllByModuleID(modInfo.ModuleID);
80-
UserController uc = new UserController();
81-
82-
foreach (var topic in topics)
83-
{
84-
SearchItemInfo searchItem = new SearchItemInfo();
85-
86-
string strContent = null;
87-
string strDescription = null;
88-
string strTitle = null;
89-
if (!string.IsNullOrWhiteSpace(topic.Title))
90-
{
91-
strTitle = topic.Title;
92-
}
93-
else
94-
{
95-
strTitle = topic.Name;
96-
}
97-
98-
if (topic.Cache != null)
99-
{
100-
strContent = topic.Cache;
101-
strContent += " " + topic.Keywords;
102-
strContent += " " + topic.Description;
103-
104-
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Cache), false), 100,
105-
Localization.GetString("Dots", this.mSharedResourceFile));
106-
}
107-
else
108-
{
109-
strContent = topic.Content;
110-
strContent += " " + topic.Keywords;
111-
strContent += " " + topic.Description;
112-
113-
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Content), false), 100,
114-
Localization.GetString("Dots", this.mSharedResourceFile));
115-
}
116-
117-
int userID = 0;
118-
119-
userID = Null.NullInteger;
120-
if (topic.UpdatedByUserID != -9999)
121-
{
122-
userID = topic.UpdatedByUserID;
123-
}
124-
125-
searchItem = new SearchItemInfo(strTitle, strDescription, userID, topic.UpdateDate, modInfo.ModuleID, topic.Name, strContent, "topic=" + WikiMarkup.EncodeTitle(topic.Name));
126-
127-
//// New SearchItemInfo(ModInfo.ModuleTitle & "-" & strTitle, strDescription,
128-
//// userID, topic.UpdateDate, ModInfo.ModuleID, topic.Name, strContent, _
129-
//// "topic=" & WikiMarkup.EncodeTitle(topic.Name))
130-
131-
searchItemCollection.Add(searchItem);
132-
}
133-
134-
return searchItemCollection;
135-
}
136-
}
137-
13860
/// <summary>
13961
/// Exports the module.
14062
/// </summary>
@@ -148,7 +70,8 @@ public string ExportModule(int moduleID)
14870
var topics = topicBo.GetAllByModuleID(moduleID);
14971

15072
ModuleController mc = new ModuleController();
151-
Hashtable settings = mc.GetModuleSettings(moduleID);
73+
var module = mc.GetModule(moduleID);
74+
Hashtable settings = module.ModuleSettings;
15275

15376
StringWriter strXML = new StringWriter();
15477
XmlWriter writer = new XmlTextWriter(strXML);
@@ -228,7 +151,7 @@ public void ImportModule(int moduleID, string content, string version, int userI
228151
{
229152
node = node_loopVariable;
230153
var topic = new Topic();
231-
topic.PortalSettings = PortalController.GetCurrentPortalSettings();
154+
topic.PortalSettings = PortalController.Instance.GetCurrentPortalSettings();
232155
topic.AllowDiscussions = bool.Parse(node.Attributes["AllowDiscussions"].Value);
233156
topic.AllowRatings = bool.Parse(node.Attributes["AllowRatings"].Value);
234157
topic.Content = node.Attributes["Content"].Value;
@@ -264,26 +187,74 @@ public void ImportModule(int moduleID, string content, string version, int userI
264187
System.Diagnostics.Debug.WriteLine(ex);
265188
}
266189
}
267-
}
190+
}
191+
192+
public override IList<SearchDocument> GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDateUtc)
193+
{
194+
using (UnitOfWork uOw = new UnitOfWork())
195+
{
196+
TopicBO topicBo = new TopicBO(uOw);
197+
198+
var searchDocuments = new List<SearchDocument>();
199+
var topics = topicBo.GetAllByModuleID(moduleInfo.ModuleID);
200+
UserController uc = new UserController();
201+
202+
foreach (var topic in topics)
203+
{
204+
string strContent = null;
205+
string strDescription = null;
206+
string strTitle = null;
207+
if (!string.IsNullOrWhiteSpace(topic.Title))
208+
{
209+
strTitle = topic.Title;
210+
}
211+
else
212+
{
213+
strTitle = topic.Name;
214+
}
268215

269-
//// Public Function UpgradeModule(ByVal Version As String) As String Implements
270-
//// IUpgradeable.UpgradeModule InitPermissions() Return Version End Function
216+
if (topic.Cache != null)
217+
{
218+
strContent = topic.Cache;
219+
strContent += " " + topic.Keywords;
220+
strContent += " " + topic.Description;
271221

272-
//// Private Sub InitPermissions() Dim EditContent As Boolean
222+
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Cache), false), 100,
223+
Localization.GetString("Dots", this.mSharedResourceFile));
224+
}
225+
else
226+
{
227+
strContent = topic.Content;
228+
strContent += " " + topic.Keywords;
229+
strContent += " " + topic.Description;
273230

274-
//// Dim moduleDefId As Integer Dim pc As New PermissionController Dim permissions As
275-
//// ArrayList = pc.GetPermissionByCodeAndKey("WIKI", Nothing) Dim dc As New
276-
//// DesktopModuleController Dim desktopInfo As DesktopModuleInfo desktopInfo =
277-
//// dc.GetDesktopModuleByModuleName("Wiki") Dim mc As New ModuleDefinitionController Dim
278-
//// mInfo As ModuleDefinitionInfo mInfo =
279-
//// mc.GetModuleDefinitionByName(desktopInfo.DesktopModuleID, "Wiki") moduleDefId =
280-
//// mInfo.ModuleDefID For Each p As PermissionInfo In permissions If p.PermissionKey =
281-
//// "EDIT_CONTENT" And p.ModuleDefID = moduleDefId Then _ EditContent = True Next If Not
282-
//// EditContent Then Dim p As New PermissionInfo p.ModuleDefID = moduleDefId
283-
//// p.PermissionCode
284-
//// = "WIKI" p.PermissionKey = "EDIT_CONTENT" p.PermissionName = "Edit Content"
285-
//// pc.AddPermission(p) End If End Sub
231+
strDescription = HtmlUtils.Shorten(HtmlUtils.Clean(HttpUtility.HtmlDecode(topic.Content), false), 100,
232+
Localization.GetString("Dots", this.mSharedResourceFile));
233+
}
234+
235+
int userID = 0;
286236

287-
#endregion Methods
237+
userID = Null.NullInteger;
238+
if (topic.UpdatedByUserID != -9999)
239+
{
240+
userID = topic.UpdatedByUserID;
241+
}
242+
243+
var searchDocument = new SearchDocument
244+
{
245+
Title = strTitle,
246+
Description = strDescription,
247+
AuthorUserId = userID,
248+
ModifiedTimeUtc = topic.UpdateDate.ToUniversalTime(),
249+
ModuleId = moduleInfo.ModuleID,
250+
UniqueKey = $"wikitopic={WikiMarkup.EncodeTitle(topic.Name)}",
251+
Body = strContent,
252+
};
253+
searchDocuments.Add(searchDocument);
254+
}
255+
256+
return searchDocuments;
257+
}
258+
}
288259
}
289260
}

0 commit comments

Comments
 (0)