Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

README.md

NotificationService

ABP version NuGet NuGet Download GitHub stars

An integrated user notification service Abp module, supporting email, SMS, PM, and more other methods.

Online Demo

We have launched an online demo for this module: https://notification.samples.easyabp.io

Installation

  1. Install the following NuGet packages. (see how)

    • EasyAbp.NotificationService.Application
    • EasyAbp.NotificationService.Application.Contracts
    • EasyAbp.NotificationService.Domain
    • EasyAbp.NotificationService.Domain.Shared
    • EasyAbp.NotificationService.EntityFrameworkCore
    • EasyAbp.NotificationService.HttpApi
    • EasyAbp.NotificationService.HttpApi.Client
    • (Optional) EasyAbp.NotificationService.MongoDB
    • (Optional) EasyAbp.NotificationService.Web
    • (Optional) EasyAbp.NotificationService.Provider.Mailing
    • (Optional) EasyAbp.NotificationService.Provider.Sms
  2. Add DependsOn(typeof(NotificationServiceXxxModule)) attribute to configure the module dependencies. (see how)

  3. Add builder.ConfigureNotificationService(); to the OnModelCreating() method in MyProjectMigrationsDbContext.cs.

  4. Add EF Core migrations and update your database. See: ABP document.

Usage

You can create a notification using a notification factory or manually.

Create with Notification Factory

  1. Create a factory.

    public class UserWelcomeNotificationFactory
        : NotificationFactory<UserWelcomeNotificationDataModel, CreateSmsNotificationEto>, ITransientDependency
    {
        public override async Task<CreateSmsNotificationEto> CreateAsync(
            UserWelcomeNotificationDataModel model, IEnumerable<Guid> userIds)
        {
            var text = $"Hello, {model.UserName}, here is a gift card code for you: {model.GiftCardCode}";
    
            return new CreateSmsNotificationEto(userIds, text, new Dictionary<string, object>());
        }
    }
  2. Use the factory to create a notification and publish it.

    var eto = await userWelcomeNotificationFactory.CreateAsync(
        model: new UserWelcomeNotificationDataModel(userData.UserName, giftCardCode),
        userId: userData.Id
    );
    
    await distributedEventBus.PublishAsync(eto);

Create Manually

Publish the notification.

await distributedEventBus.PublishAsync(new CreateEmailNotificationEto(userIds, subject, body));

Notifications

Q&A

How to Change User's Email Address and Phone Number Info Source

You can override the IdentityUserEmailAddressProvider and the IdentityUserPhoneNumberProvider.

How to Use a Dynamic Notification Content Template

You can use the ABP Text Templating feature, see the demo.

Road map

  • Private messaging notification provider.
  • WeChat uniform message notification provider.
  • Notification management UI.

About

An integrated user notification service Abp module, supporting email, SMS, PM, and more other methods.

Resources

License

Languages