I added a couple methods to the AppNotifier class. I want to be able to send emails when a user gets a notification, that they received a specific notification. Would you have any good ideas how I can do this for the ones where people are only registered to receive the notification?
3 Answer(s)
-
0
Hi,
Inject INotificationStore into your AppNotifier. Then you can use
_notificationStore.IsSubscribedAsync
method to check if a user is subscribed to a specific notification.
This interface has some other methods you might find useful for your case.
-
0
Okay, so I am guessing in the AppNotifier I would just query the users table in the notification method and then check if each user is subscribed to this notification and then send them the email?
-
0
Actually, this would not be performant.
Use INotificationSubscriptionManager.GetSubscriptionsAsync (<a class="postlink" href="https://github.com/aspnetboilerplate/aspnetboilerplate/blob/dev/src/Abp/Notifications/INotificationSubscriptionManager.cs#L49">https://github.com/aspnetboilerplate/as ... ger.cs#L49</a>) to get subscribed users and send them emails.
As an alternative, you can inherit from NotificationStore and override InsertUserNotificationAsync method (<a class="postlink" href="https://github.com/aspnetboilerplate/module-zero/blob/dev/src/Abp.Zero/Notifications/NotificationStore.cs#L85">https://github.com/aspnetboilerplate/mo ... ore.cs#L85</a>). In that override, call base then send your email. Note that you should replace INotificationStore with YourNotificationStore (<a class="postlink" href="http://www.aspnetboilerplate.com/Pages/Documents/Startup-Configuration#replacing-built-in-services">http://www.aspnetboilerplate.com/Pages/ ... n-services</a>)
Have a nice day.