|
18 | 18 | // CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
19 | 19 | // DEALINGS IN THE SOFTWARE.
|
20 | 20 |
|
| 21 | +using DotNetNuke.Modules.ActiveForums.Entities; |
| 22 | + |
21 | 23 | namespace DotNetNuke.Modules.ActiveForums
|
22 | 24 | {
|
23 | 25 | using System;
|
@@ -73,24 +75,31 @@ public int Subscription_Update(int portalId, int moduleId, int forumId, int topi
|
73 | 75 | return -1;
|
74 | 76 | }
|
75 | 77 |
|
| 78 | + [Obsolete("Deprecated in Community Forums. Removed in 10.00.00. Use Subscription_GetSubscribers(int portalId, int moduleId, int forumId, int topicId, SubscriptionTypes mode, DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo author, string canSubscribe).")] |
| 79 | + public List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> Subscription_GetSubscribers(int portalId, int forumId, int topicId, SubscriptionTypes mode, int authorId, string canSubscribe) => throw new NotImplementedException(); |
| 80 | + |
76 | 81 | // TODO: move to new DAL2 subscription controller
|
77 |
| - public List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> Subscription_GetSubscribers(int portalId, int forumId, int topicId, SubscriptionTypes mode, int authorId, string canSubscribe) |
| 82 | + public List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> Subscription_GetSubscribers(DotNetNuke.Modules.ActiveForums.Entities.ForumInfo forum, int topicId, SubscriptionTypes mode, DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo author) |
78 | 83 | {
|
79 |
| - DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo si; |
80 | 84 | var sl = new List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo>();
|
81 |
| - IDataReader dr = DataProvider.Instance().Subscriptions_GetSubscribers(portalId, forumId, topicId, (int)mode); |
| 85 | + IDataReader dr = DataProvider.Instance().Subscriptions_GetSubscribers(forum.PortalId, forum.ForumID, topicId, (int)mode); |
82 | 86 | while (dr.Read())
|
83 | 87 | {
|
84 |
| - if (authorId != Convert.ToInt32(dr["UserId"])) |
| 88 | + if (Convert.ToInt32(dr["userId"]) != author.AuthorId || author.ForumUser.EnableNotificationsForOwnContent) |
85 | 89 | {
|
86 |
| - si = new DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo |
| 90 | + var si = new DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo |
87 | 91 | {
|
88 |
| - UserId = Convert.ToInt32(dr["UserId"]), |
| 92 | + ModuleId = forum.ModuleId, |
| 93 | + PortalId = forum.PortalId, |
| 94 | + ForumId = forum.ForumID, |
| 95 | + UserId = Convert.ToInt32(dr["userId"]), |
| 96 | + Email = dr["email"].ToString(), |
| 97 | + TopicId = Convert.ToInt32(dr["topicsubscriber"]).Equals(1) ? topicId : 0, |
89 | 98 | };
|
90 | 99 |
|
91 | 100 | if (!sl.Contains(si))
|
92 | 101 | {
|
93 |
| - if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasPerm(canSubscribe, portalId, si.ModuleId, si.UserId)) |
| 102 | + if (DotNetNuke.Modules.ActiveForums.Controllers.PermissionController.HasPerm(forum.Security.Subscribe, forum.PortalId, forum.ModuleId, si.UserId)) |
94 | 103 | {
|
95 | 104 | sl.Add(si);
|
96 | 105 | }
|
@@ -133,12 +142,11 @@ public static void SendSubscriptions(int portalId, int moduleId, int tabId, DotN
|
133 | 142 | // TODO: move to new DAL2 subscription controller
|
134 | 143 | public static void SendSubscriptions(int templateId, int portalId, int moduleId, int tabId, DotNetNuke.Modules.ActiveForums.Entities.ForumInfo fi, int topicId, int replyId, int authorId, Uri requestUrl)
|
135 | 144 | {
|
136 |
| - var sc = new SubscriptionController(); |
137 |
| - List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> subs = sc.Subscription_GetSubscribers(portalId, fi.ForumID, topicId, SubscriptionTypes.Instant, authorId, fi.Security.Subscribe); |
| 145 | + var author = new DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo(portalId, moduleId, authorId); |
| 146 | + List<DotNetNuke.Modules.ActiveForums.Entities.SubscriptionInfo> subs = new DotNetNuke.Modules.ActiveForums.SubscriptionController().Subscription_GetSubscribers(fi, topicId, SubscriptionTypes.Instant, author); |
138 | 147 |
|
139 | 148 | if (subs.Count > 0)
|
140 | 149 | {
|
141 |
| - var author = new DotNetNuke.Modules.ActiveForums.Entities.AuthorInfo(portalId, moduleId, authorId); |
142 | 150 | DotNetNuke.Modules.ActiveForums.Controllers.EmailController.SendTemplatedEmail(templateId, portalId, topicId, replyId, moduleId, tabId, author, fi, subs, requestUrl, requestUrl.PathAndQuery);
|
143 | 151 | }
|
144 | 152 | }
|
|
0 commit comments