Browse Source

feat(docs): 添加实时通知模块文档

pull/1049/head
feijie 1 year ago
parent
commit
f60b0b8320
  1. 79
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application.Contracts/README.EN.md
  2. 79
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application.Contracts/README.md
  3. 58
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application/README.EN.md
  4. 58
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application/README.md
  5. 113
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Common/README.EN.md
  6. 113
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Common/README.md
  7. 65
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Core/README.EN.md
  8. 65
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Core/README.md
  9. 58
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain.Shared/README.EN.md
  10. 58
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain.Shared/README.md
  11. 61
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain/README.EN.md
  12. 61
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain/README.md
  13. 98
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Emailing/README.EN.md
  14. 98
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Emailing/README.md
  15. 72
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.EntityFrameworkCore/README.EN.md
  16. 72
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.EntityFrameworkCore/README.md
  17. 72
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.HttpApi/README.EN.md
  18. 72
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.HttpApi/README.md
  19. 106
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.PushPlus/README.EN.md
  20. 90
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.PushPlus/README.md
  21. 88
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.SignalR/README.EN.md
  22. 88
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.SignalR/README.md
  23. 98
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Sms/README.EN.md
  24. 66
      aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Sms/README.md

79
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application.Contracts/README.EN.md

@ -0,0 +1,79 @@
# LINGYUN.Abp.Notifications.Application.Contracts
The application layer contracts module of the notification system, providing application service interface definitions and data transfer objects.
## Features
* Notification application service interface definitions
* Notification subscription application service interface definitions
* Notification data transfer object (DTO) definitions
* Notification permission definitions
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsApplicationContractsModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Application Service Interfaces
### INotificationAppService
* GetAsync - Get notification details
* GetListAsync - Get notification list
* DeleteAsync - Delete notification
* MarkReadAsync - Mark notification as read
* MarkAllReadAsync - Mark all notifications as read
### INotificationSubscriptionAppService
* SubscribeAsync - Subscribe to notification
* UnSubscribeAsync - Unsubscribe from notification
* GetAssignableSubscribersAsync - Get list of assignable subscribers
* GetSubscribedListAsync - Get list of subscribed notifications
## Data Transfer Objects
### NotificationInfo
* Id - Unique identifier for the notification
* NotificationName - Notification name
* Data - Notification data
* CreationTime - Creation time
* Type - Notification type
* Severity - Notification severity
### NotificationSubscriptionInfo
* NotificationName - Notification name
* DisplayName - Display name
* Description - Description
* IsSubscribed - Subscription status
## Permission Definitions
* Notifications - Notification management
* Notifications.Manage - Manage notifications
* Notifications.Delete - Delete notifications
* Notifications.Subscribe - Subscribe to notifications
## Basic Usage
1. Implement notification application service
```csharp
public class NotificationAppService : ApplicationService, INotificationAppService
{
public async Task<NotificationInfo> GetAsync(Guid id)
{
// Implement logic to get notification details
}
}
```
## More Information
* [ABP Documentation](https://docs.abp.io)

79
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application.Contracts/README.md

@ -0,0 +1,79 @@
# LINGYUN.Abp.Notifications.Application.Contracts
通知系统的应用层契约模块,提供了通知系统的应用服务接口定义和数据传输对象。
## 功能特性
* 通知应用服务接口定义
* 通知订阅应用服务接口定义
* 通知数据传输对象(DTO)定义
* 通知权限定义
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsApplicationContractsModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 应用服务接口
### INotificationAppService
* GetAsync - 获取通知详情
* GetListAsync - 获取通知列表
* DeleteAsync - 删除通知
* MarkReadAsync - 标记通知为已读
* MarkAllReadAsync - 标记所有通知为已读
### INotificationSubscriptionAppService
* SubscribeAsync - 订阅通知
* UnSubscribeAsync - 取消订阅通知
* GetAssignableSubscribersAsync - 获取可分配的订阅者列表
* GetSubscribedListAsync - 获取已订阅的通知列表
## 数据传输对象
### NotificationInfo
* Id - 通知唯一标识
* NotificationName - 通知名称
* Data - 通知数据
* CreationTime - 创建时间
* Type - 通知类型
* Severity - 通知严重程度
### NotificationSubscriptionInfo
* NotificationName - 通知名称
* DisplayName - 显示名称
* Description - 描述
* IsSubscribed - 是否已订阅
## 权限定义
* Notifications - 通知管理
* Notifications.Manage - 管理通知
* Notifications.Delete - 删除通知
* Notifications.Subscribe - 订阅通知
## 基本用法
1. 实现通知应用服务
```csharp
public class NotificationAppService : ApplicationService, INotificationAppService
{
public async Task<NotificationInfo> GetAsync(Guid id)
{
// 实现获取通知详情的逻辑
}
}
```
## 更多信息
* [ABP文档](https://docs.abp.io)

58
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application/README.EN.md

@ -0,0 +1,58 @@
# LINGYUN.Abp.Notifications.Application
The application layer module of the notification system, providing application service implementations for the notification system.
## Features
* Notification management service
* Notification subscription service
* Notification publishing service
* Notification query service
* Notification status management service
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsApplicationModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Application Services
### INotificationAppService
* GetAsync - Get notification details
* GetListAsync - Get notification list
* DeleteAsync - Delete notification
* MarkReadAsync - Mark notification as read
* MarkAllReadAsync - Mark all notifications as read
### INotificationSubscriptionAppService
* SubscribeAsync - Subscribe to notification
* UnSubscribeAsync - Unsubscribe from notification
* GetAssignableSubscribersAsync - Get list of assignable subscribers
* GetSubscribedListAsync - Get list of subscribed notifications
## Basic Usage
1. Send notification
```csharp
await NotificationAppService.PublishAsync(
name: "YourNotification",
data: new NotificationData(),
userIds: new[] { CurrentUser.Id });
```
2. Manage notification subscription
```csharp
await NotificationSubscriptionAppService.SubscribeAsync(
notificationName: "YourNotification");
```
## More Information
* [ABP Documentation](https://docs.abp.io)

58
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Application/README.md

@ -0,0 +1,58 @@
# LINGYUN.Abp.Notifications.Application
通知系统的应用层模块,提供了通知系统的应用服务实现。
## 功能特性
* 通知管理服务
* 通知订阅服务
* 通知发布服务
* 通知查询服务
* 通知状态管理服务
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsApplicationModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 应用服务
### INotificationAppService
* GetAsync - 获取通知详情
* GetListAsync - 获取通知列表
* DeleteAsync - 删除通知
* MarkReadAsync - 标记通知为已读
* MarkAllReadAsync - 标记所有通知为已读
### INotificationSubscriptionAppService
* SubscribeAsync - 订阅通知
* UnSubscribeAsync - 取消订阅通知
* GetAssignableSubscribersAsync - 获取可分配的订阅者列表
* GetSubscribedListAsync - 获取已订阅的通知列表
## 基本用法
1. 发送通知
```csharp
await NotificationAppService.PublishAsync(
name: "YourNotification",
data: new NotificationData(),
userIds: new[] { CurrentUser.Id });
```
2. 管理通知订阅
```csharp
await NotificationSubscriptionAppService.SubscribeAsync(
notificationName: "YourNotification");
```
## 更多信息
* [ABP文档](https://docs.abp.io)

113
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Common/README.EN.md

@ -0,0 +1,113 @@
# LINGYUN.Abp.Notifications.Common
The common module of the notification system, providing basic definitions and shared functionality.
## Features
* Notification Definitions
* Notification group definitions
* Notification type definitions
* Notification level definitions
* Common Utilities
* Notification data handling
* Notification status management
* Extension Features
* Notification data extensions
* Notification provider extensions
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsCommonModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Basic Definitions
### Notification Group
```csharp
public class NotificationGroupDefinition
{
public string Name { get; }
public string DisplayName { get; }
public string Description { get; }
public bool AllowSubscriptionToClients { get; }
}
```
### Notification Definition
```csharp
public class NotificationDefinition
{
public string Name { get; }
public string DisplayName { get; }
public string Description { get; }
public NotificationType NotificationType { get; }
public NotificationLifetime Lifetime { get; }
public bool AllowSubscriptionToClients { get; }
}
```
## Basic Usage
1. Define Notification Group
```csharp
public class YourNotificationGroupDefinitionProvider : NotificationGroupDefinitionProvider
{
public override void Define(INotificationGroupDefinitionContext context)
{
context.Add(
new NotificationGroupDefinition(
name: "App.Notifications",
displayName: L("AppNotifications"),
description: L("AppNotificationsDescription")
)
);
}
}
```
2. Define Notification
```csharp
public class YourNotificationDefinitionProvider : NotificationDefinitionProvider
{
public override void Define(INotificationDefinitionContext context)
{
context.Add(
new NotificationDefinition(
name: "App.NewMessage",
displayName: L("NewMessage"),
description: L("NewMessageDescription"),
notificationType: NotificationType.Application,
lifetime: NotificationLifetime.Persistent
)
);
}
}
```
3. Use Notification Data Extensions
```csharp
public static class NotificationDataExtensions
{
public static void SetTitle(this NotificationData data, string title)
{
data.ExtraProperties["Title"] = title;
}
public static string GetTitle(this NotificationData data)
{
return data.ExtraProperties.GetOrDefault("Title") as string;
}
}
```
## More Information
* [ABP Documentation](https://docs.abp.io)
* [Notifications Documentation](https://docs.abp.io/en/abp/latest/Notifications)

113
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Common/README.md

@ -0,0 +1,113 @@
# LINGYUN.Abp.Notifications.Common
通知系统的公共模块,提供了通知系统的基础定义和共享功能。
## 功能特性
* 通知定义
* 通知组定义
* 通知类型定义
* 通知级别定义
* 通用工具类
* 通知数据处理
* 通知状态管理
* 扩展功能
* 通知数据扩展
* 通知提供者扩展
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsCommonModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 基础定义
### 通知组
```csharp
public class NotificationGroupDefinition
{
public string Name { get; }
public string DisplayName { get; }
public string Description { get; }
public bool AllowSubscriptionToClients { get; }
}
```
### 通知定义
```csharp
public class NotificationDefinition
{
public string Name { get; }
public string DisplayName { get; }
public string Description { get; }
public NotificationType NotificationType { get; }
public NotificationLifetime Lifetime { get; }
public bool AllowSubscriptionToClients { get; }
}
```
## 基本用法
1. 定义通知组
```csharp
public class YourNotificationGroupDefinitionProvider : NotificationGroupDefinitionProvider
{
public override void Define(INotificationGroupDefinitionContext context)
{
context.Add(
new NotificationGroupDefinition(
name: "App.Notifications",
displayName: L("AppNotifications"),
description: L("AppNotificationsDescription")
)
);
}
}
```
2. 定义通知
```csharp
public class YourNotificationDefinitionProvider : NotificationDefinitionProvider
{
public override void Define(INotificationDefinitionContext context)
{
context.Add(
new NotificationDefinition(
name: "App.NewMessage",
displayName: L("NewMessage"),
description: L("NewMessageDescription"),
notificationType: NotificationType.Application,
lifetime: NotificationLifetime.Persistent
)
);
}
}
```
3. 使用通知数据扩展
```csharp
public static class NotificationDataExtensions
{
public static void SetTitle(this NotificationData data, string title)
{
data.ExtraProperties["Title"] = title;
}
public static string GetTitle(this NotificationData data)
{
return data.ExtraProperties.GetOrDefault("Title") as string;
}
}
```
## 更多信息
* [ABP文档](https://docs.abp.io)
* [通知系统文档](https://docs.abp.io/en/abp/latest/Notifications)

65
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Core/README.EN.md

@ -0,0 +1,65 @@
# LINGYUN.Abp.Notifications.Core
The core module of the notification system, providing basic functionality and definitions for the notification system.
## Features
* Notification definition management
* Notification group definition management
* Extensible notification provider mechanism
* Support for custom notification definition providers
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsCoreModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Configuration
```json
{
"Notifications": {
"DeletedNotifications": [], // List of notification definitions to be deleted
"DeletedNotificationGroups": [] // List of notification group definitions to be deleted
}
}
```
## Basic Usage
1. Implement custom notification definition provider
```csharp
public class YourNotificationDefinitionProvider : NotificationDefinitionProvider
{
public override void Define(INotificationDefinitionContext context)
{
// Define notifications
context.Add(
new NotificationDefinition(
name: "YourNotification",
displayName: L("YourNotification"),
description: L("YourNotificationDescription"),
notificationType: NotificationType.Application,
lifetime: NotificationLifetime.Persistent,
allowSubscriptionToClients: true)
);
}
}
```
2. Register notification definition provider
```csharp
Configure<AbpNotificationsOptions>(options =>
{
options.DefinitionProviders.Add<YourNotificationDefinitionProvider>();
});
```
## More Information
* [ABP Documentation](https://docs.abp.io)

65
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Core/README.md

@ -0,0 +1,65 @@
# LINGYUN.Abp.Notifications.Core
通知系统的核心模块,提供了通知系统的基础功能和定义。
## 功能特性
* 通知定义管理
* 通知组定义管理
* 可扩展的通知提供者机制
* 支持自定义通知定义提供者
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsCoreModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 配置项
```json
{
"Notifications": {
"DeletedNotifications": [], // 需要删除的通知定义列表
"DeletedNotificationGroups": [] // 需要删除的通知组定义列表
}
}
```
## 基本用法
1. 实现自定义通知定义提供者
```csharp
public class YourNotificationDefinitionProvider : NotificationDefinitionProvider
{
public override void Define(INotificationDefinitionContext context)
{
// 定义通知
context.Add(
new NotificationDefinition(
name: "YourNotification",
displayName: L("YourNotification"),
description: L("YourNotificationDescription"),
notificationType: NotificationType.Application,
lifetime: NotificationLifetime.Persistent,
allowSubscriptionToClients: true)
);
}
}
```
2. 注册通知定义提供者
```csharp
Configure<AbpNotificationsOptions>(options =>
{
options.DefinitionProviders.Add<YourNotificationDefinitionProvider>();
});
```
## 更多信息
* [ABP文档](https://docs.abp.io)

58
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain.Shared/README.EN.md

@ -0,0 +1,58 @@
# LINGYUN.Abp.Notifications.Domain.Shared
The shared domain layer module of the notification system, providing shared constants, enums, and other domain objects for the notification system.
## Features
* Notification type definition
* Notification severity definition
* Notification status definition
* Notification lifetime definition
* Notification constant definition
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsDomainSharedModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Enum Definitions
### NotificationType
* Application - Application notification
* System - System notification
* User - User notification
### NotificationSeverity
* Info - Information
* Success - Success
* Warn - Warning
* Error - Error
* Fatal - Fatal error
### NotificationLifetime
* Persistent - Persistent notification
* OnlyOne - One-time notification
## Basic Usage
1. Use notification type
```csharp
var notificationType = NotificationType.Application;
```
2. Use notification severity
```csharp
var severity = NotificationSeverity.Info;
```
## More Information
* [ABP Documentation](https://docs.abp.io)

58
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain.Shared/README.md

@ -0,0 +1,58 @@
# LINGYUN.Abp.Notifications.Domain.Shared
通知系统的共享领域层模块,提供了通知系统的共享常量、枚举和其他领域对象。
## 功能特性
* 通知类型定义
* 通知严重程度定义
* 通知状态定义
* 通知生命周期定义
* 通知常量定义
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsDomainSharedModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 枚举定义
### NotificationType
* Application - 应用程序通知
* System - 系统通知
* User - 用户通知
### NotificationSeverity
* Info - 信息
* Success - 成功
* Warn - 警告
* Error - 错误
* Fatal - 致命错误
### NotificationLifetime
* Persistent - 持久化通知
* OnlyOne - 一次性通知
## 基本用法
1. 使用通知类型
```csharp
var notificationType = NotificationType.Application;
```
2. 使用通知严重程度
```csharp
var severity = NotificationSeverity.Info;
```
## 更多信息
* [ABP文档](https://docs.abp.io)

61
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain/README.EN.md

@ -0,0 +1,61 @@
# LINGYUN.Abp.Notifications.Domain
The domain layer module of the notification system, providing domain models and business logic for the notification system.
## Features
* Notification entity definition
* Notification subscription management
* Notification status management
* Notification data extension support
* Support for custom notification data
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsDomainModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Domain Models
### Notification
* Id - Unique identifier for the notification
* Name - Notification name
* NotificationData - Notification data
* CreationTime - Creation time
* Type - Notification type
* Severity - Notification severity
* ExtraProperties - Extension properties
### NotificationSubscription
* UserId - User identifier
* NotificationName - Notification name
* CreationTime - Creation time
## Basic Usage
1. Create notification
```csharp
var notification = new Notification(
id: GuidGenerator.Create(),
name: "YourNotification",
data: new NotificationData(),
tenantId: CurrentTenant.Id);
```
2. Manage notification subscriptions
```csharp
await NotificationSubscriptionManager.SubscribeAsync(
userId: CurrentUser.Id,
notificationName: "YourNotification");
```
## More Information
* [ABP Documentation](https://docs.abp.io)

61
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Domain/README.md

@ -0,0 +1,61 @@
# LINGYUN.Abp.Notifications.Domain
通知系统的领域层模块,提供了通知系统的领域模型和业务逻辑。
## 功能特性
* 通知实体定义
* 通知订阅管理
* 通知状态管理
* 通知数据扩展支持
* 支持自定义通知数据
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsDomainModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 领域模型
### Notification
* Id - 通知唯一标识
* Name - 通知名称
* NotificationData - 通知数据
* CreationTime - 创建时间
* Type - 通知类型
* Severity - 通知严重程度
* ExtraProperties - 扩展属性
### NotificationSubscription
* UserId - 用户标识
* NotificationName - 通知名称
* CreationTime - 创建时间
## 基本用法
1. 创建通知
```csharp
var notification = new Notification(
id: GuidGenerator.Create(),
name: "YourNotification",
data: new NotificationData(),
tenantId: CurrentTenant.Id);
```
2. 管理通知订阅
```csharp
await NotificationSubscriptionManager.SubscribeAsync(
userId: CurrentUser.Id,
notificationName: "YourNotification");
```
## 更多信息
* [ABP文档](https://docs.abp.io)

98
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Emailing/README.EN.md

@ -0,0 +1,98 @@
# LINGYUN.Abp.Notifications.Emailing
The email sending module of the notification system, providing functionality to send notifications via email.
## Features
* Email notification sending
* Email template support
* Support for HTML format emails
* Support for multiple recipients
* Support for CC and BCC
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsEmailingModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Configuration
```json
{
"Notifications": {
"Emailing": {
"Templates": {
"Default": {
"Template": "DefaultTemplate",
"Culture": "en"
}
}
}
}
}
```
## Basic Usage
1. Configure Email Settings
```csharp
Configure<AbpEmailingOptions>(options =>
{
options.DefaultFromAddress = "noreply@example.com";
options.DefaultFromDisplayName = "Notification System";
});
```
2. Send Email Notification
```csharp
public class YourNotificationHandler : INotificationHandler
{
private readonly IEmailSender _emailSender;
public YourNotificationHandler(IEmailSender emailSender)
{
_emailSender = emailSender;
}
public async Task HandleAsync(NotificationInfo notification)
{
await _emailSender.SendAsync(
to: notification.UserEmail,
subject: notification.Title,
body: notification.Content,
isBodyHtml: true
);
}
}
```
3. Use Email Template
```csharp
public async Task SendWithTemplateAsync()
{
var template = await _templateRenderer.RenderAsync(
"DefaultTemplate",
new {
Title = "Notification Title",
Content = "Notification Content"
}
);
await _emailSender.SendAsync(
to: "user@example.com",
subject: "Notification",
body: template,
isBodyHtml: true
);
}
```
## More Information
* [ABP Documentation](https://docs.abp.io)
* [Emailing Documentation](https://docs.abp.io/en/abp/latest/Emailing)

98
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Emailing/README.md

@ -0,0 +1,98 @@
# LINGYUN.Abp.Notifications.Emailing
通知系统的邮件发送模块,提供了通过邮件发送通知的功能。
## 功能特性
* 邮件通知发送
* 邮件模板支持
* 支持HTML格式邮件
* 支持多收件人
* 支持抄送和密送
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsEmailingModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 配置项
```json
{
"Notifications": {
"Emailing": {
"Templates": {
"Default": {
"Template": "DefaultTemplate",
"Culture": "zh-Hans"
}
}
}
}
}
```
## 基本用法
1. 配置邮件设置
```csharp
Configure<AbpEmailingOptions>(options =>
{
options.DefaultFromAddress = "noreply@example.com";
options.DefaultFromDisplayName = "Notification System";
});
```
2. 发送邮件通知
```csharp
public class YourNotificationHandler : INotificationHandler
{
private readonly IEmailSender _emailSender;
public YourNotificationHandler(IEmailSender emailSender)
{
_emailSender = emailSender;
}
public async Task HandleAsync(NotificationInfo notification)
{
await _emailSender.SendAsync(
to: notification.UserEmail,
subject: notification.Title,
body: notification.Content,
isBodyHtml: true
);
}
}
```
3. 使用邮件模板
```csharp
public async Task SendWithTemplateAsync()
{
var template = await _templateRenderer.RenderAsync(
"DefaultTemplate",
new {
Title = "通知标题",
Content = "通知内容"
}
);
await _emailSender.SendAsync(
to: "user@example.com",
subject: "通知",
body: template,
isBodyHtml: true
);
}
```
## 更多信息
* [ABP文档](https://docs.abp.io)
* [邮件发送文档](https://docs.abp.io/en/abp/latest/Emailing)

72
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.EntityFrameworkCore/README.EN.md

@ -0,0 +1,72 @@
# LINGYUN.Abp.Notifications.EntityFrameworkCore
The EntityFrameworkCore module of the notification system, providing data access implementation for the notification system.
## Features
* Notification entity mapping configuration
* Notification repository implementation
* Notification subscription repository implementation
* Support for multiple databases
* Support for custom repository extensions
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsEntityFrameworkCoreModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Entity Mappings
### NotificationEfCoreEntityTypeConfiguration
* Notification - Notification entity mapping
* Id - Primary key mapping
* NotificationName - Notification name mapping
* Data - Notification data mapping
* CreationTime - Creation time mapping
* Type - Notification type mapping
* Severity - Notification severity mapping
### NotificationSubscriptionEfCoreEntityTypeConfiguration
* NotificationSubscription - Notification subscription entity mapping
* UserId - User identifier mapping
* NotificationName - Notification name mapping
* CreationTime - Creation time mapping
## Basic Usage
1. Configure DbContext
```csharp
public class YourDbContext : AbpDbContext<YourDbContext>
{
public DbSet<Notification> Notifications { get; set; }
public DbSet<NotificationSubscription> NotificationSubscriptions { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ConfigureNotifications();
}
}
```
2. Configure connection string
```json
{
"ConnectionStrings": {
"Default": "Server=localhost;Database=YourDb;Trusted_Connection=True"
}
}
```
## More Information
* [ABP Documentation](https://docs.abp.io)
* [Entity Framework Core Documentation](https://docs.microsoft.com/ef/core/)

72
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.EntityFrameworkCore/README.md

@ -0,0 +1,72 @@
# LINGYUN.Abp.Notifications.EntityFrameworkCore
通知系统的EntityFrameworkCore模块,提供了通知系统的数据访问实现。
## 功能特性
* 通知实体映射配置
* 通知仓储实现
* 通知订阅仓储实现
* 支持多数据库
* 支持自定义仓储扩展
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsEntityFrameworkCoreModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 实体映射
### NotificationEfCoreEntityTypeConfiguration
* Notification - 通知实体映射
* Id - 主键映射
* NotificationName - 通知名称映射
* Data - 通知数据映射
* CreationTime - 创建时间映射
* Type - 通知类型映射
* Severity - 通知严重程度映射
### NotificationSubscriptionEfCoreEntityTypeConfiguration
* NotificationSubscription - 通知订阅实体映射
* UserId - 用户标识映射
* NotificationName - 通知名称映射
* CreationTime - 创建时间映射
## 基本用法
1. 配置DbContext
```csharp
public class YourDbContext : AbpDbContext<YourDbContext>
{
public DbSet<Notification> Notifications { get; set; }
public DbSet<NotificationSubscription> NotificationSubscriptions { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.ConfigureNotifications();
}
}
```
2. 配置连接字符串
```json
{
"ConnectionStrings": {
"Default": "Server=localhost;Database=YourDb;Trusted_Connection=True"
}
}
```
## 更多信息
* [ABP文档](https://docs.abp.io)
* [Entity Framework Core文档](https://docs.microsoft.com/ef/core/)

72
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.HttpApi/README.EN.md

@ -0,0 +1,72 @@
# LINGYUN.Abp.Notifications.HttpApi
The HTTP API module of the notification system, providing REST API interfaces for the notification system.
## Features
* Notification management API
* Notification subscription API
* Notification status management API
* Support for API versioning
* Support for Swagger documentation
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsHttpApiModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## API Endpoints
### NotificationController
* GET /api/notifications/{id} - Get notification details
* GET /api/notifications - Get notification list
* DELETE /api/notifications/{id} - Delete notification
* PUT /api/notifications/{id}/read - Mark notification as read
* PUT /api/notifications/read - Mark all notifications as read
### NotificationSubscriptionController
* POST /api/notifications/subscriptions - Subscribe to notification
* DELETE /api/notifications/subscriptions - Unsubscribe from notification
* GET /api/notifications/subscribers - Get list of assignable subscribers
* GET /api/notifications/subscriptions - Get list of subscribed notifications
## Basic Usage
1. Configure Startup
```csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<YourHttpApiModule>();
}
public void Configure(IApplicationBuilder app)
{
app.InitializeApplication();
}
}
```
2. API Call Examples
```bash
# Get notification list
curl -X GET "https://localhost:44300/api/notifications"
# Subscribe to notification
curl -X POST "https://localhost:44300/api/notifications/subscriptions" \
-H "Content-Type: application/json" \
-d '{"notificationName":"YourNotification"}'
```
## More Information
* [ABP Documentation](https://docs.abp.io)
* [ASP.NET Core Documentation](https://docs.microsoft.com/aspnet/core)

72
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.HttpApi/README.md

@ -0,0 +1,72 @@
# LINGYUN.Abp.Notifications.HttpApi
通知系统的HTTP API模块,提供了通知系统的REST API接口。
## 功能特性
* 通知管理API
* 通知订阅API
* 通知状态管理API
* 支持API版本控制
* 支持Swagger文档
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsHttpApiModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## API接口
### NotificationController
* GET /api/notifications/{id} - 获取通知详情
* GET /api/notifications - 获取通知列表
* DELETE /api/notifications/{id} - 删除通知
* PUT /api/notifications/{id}/read - 标记通知为已读
* PUT /api/notifications/read - 标记所有通知为已读
### NotificationSubscriptionController
* POST /api/notifications/subscriptions - 订阅通知
* DELETE /api/notifications/subscriptions - 取消订阅通知
* GET /api/notifications/subscribers - 获取可分配的订阅者列表
* GET /api/notifications/subscriptions - 获取已订阅的通知列表
## 基本用法
1. 配置Startup
```csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<YourHttpApiModule>();
}
public void Configure(IApplicationBuilder app)
{
app.InitializeApplication();
}
}
```
2. 调用API示例
```bash
# 获取通知列表
curl -X GET "https://localhost:44300/api/notifications"
# 订阅通知
curl -X POST "https://localhost:44300/api/notifications/subscriptions" \
-H "Content-Type: application/json" \
-d '{"notificationName":"YourNotification"}'
```
## 更多信息
* [ABP文档](https://docs.abp.io)
* [ASP.NET Core文档](https://docs.microsoft.com/aspnet/core)

106
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.PushPlus/README.EN.md

@ -0,0 +1,106 @@
# LINGYUN.Abp.Notifications.PushPlus
PushPlus implementation of the notification module
Enables applications to publish real-time notifications through PushPlus
## Features
* Support for multiple message types
* Text messages
* HTML messages
* Markdown messages
* Image messages
* Custom template messages
* Message callback support
* Custom callback URL support
* Message sending status callback support
* Multi-channel push support
* WeChat Official Account
* WeChat Work
* Email
* SMS
* WebHook
* Group message support
* Group push support
* Group management support
## Module Reference
```csharp
[DependsOn(typeof(AbpNotificationsPushPlusModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Configuration
```json
{
"PushPlus": {
"Token": "Your PushPlus Token",
"DefaultChannel": "wechat", // Default push channel: wechat/webhook/mail/sms
"DefaultTemplate": "html", // Default message template: html/json/markdown/txt
"DefaultWebhook": "", // Default Webhook URL
"DefaultCallbackUrl": "" // Default callback URL
}
}
```
## Basic Usage
1. Configure PushPlus Service
```csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpNotificationsPushPlusOptions>(options =>
{
options.Token = "Your PushPlus Token";
options.DefaultChannel = "wechat";
options.DefaultTemplate = "html";
});
}
```
2. Send Notification
```csharp
public class YourService
{
private readonly INotificationSender _notificationSender;
public YourService(INotificationSender notificationSender)
{
_notificationSender = notificationSender;
}
public async Task SendNotificationAsync()
{
var notificationData = new NotificationData();
notificationData.TrySetData("title", "Message Title");
notificationData.TrySetData("content", "Message Content");
notificationData.SetWebhook("https://your-webhook.com");
notificationData.SetCallbackUrl("https://your-callback.com");
await _notificationSender.SendNofiterAsync(
"YourNotification",
notificationData,
userIds: new[] { CurrentUser.Id }
);
}
}
```
## Important Notes
1. Registration on the PushPlus platform and obtaining a Token is required before use.
2. Ensure the configured Token is valid and has sufficient permissions.
3. Callback URL must be accessible from the public internet.
4. Different channels may have different message format requirements.
5. Message sending depends on PushPlus API, ensure network connectivity is stable.
## More Information
* [PushPlus Documentation](http://www.pushplus.plus/doc/)
* [ABP Documentation](https://docs.abp.io)

90
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.PushPlus/README.md

@ -4,6 +4,27 @@
使应用可通过PushPlus发布实时通知
## 功能特性
* 支持多种消息类型
* 文本消息
* HTML消息
* Markdown消息
* 图片消息
* 自定义模板消息
* 支持消息回调
* 支持自定义回调URL
* 支持消息发送状态回调
* 支持多渠道推送
* 微信公众号
* 企业微信
* 邮件
* 短信
* WebHook
* 支持群组消息
* 支持群组推送
* 支持群组管理
## 模块引用
```csharp
@ -14,3 +35,72 @@ public class YouProjectModule : AbpModule
}
```
## 配置项
```json
{
"PushPlus": {
"Token": "你的PushPlus Token",
"DefaultChannel": "wechat", // 默认推送渠道:wechat/webhook/mail/sms
"DefaultTemplate": "html", // 默认消息模板:html/json/markdown/txt
"DefaultWebhook": "", // 默认Webhook地址
"DefaultCallbackUrl": "" // 默认回调地址
}
}
```
## 基本用法
1. 配置PushPlus服务
```csharp
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpNotificationsPushPlusOptions>(options =>
{
options.Token = "你的PushPlus Token";
options.DefaultChannel = "wechat";
options.DefaultTemplate = "html";
});
}
```
2. 发送通知
```csharp
public class YourService
{
private readonly INotificationSender _notificationSender;
public YourService(INotificationSender notificationSender)
{
_notificationSender = notificationSender;
}
public async Task SendNotificationAsync()
{
var notificationData = new NotificationData();
notificationData.TrySetData("title", "消息标题");
notificationData.TrySetData("content", "消息内容");
notificationData.SetWebhook("https://your-webhook.com");
notificationData.SetCallbackUrl("https://your-callback.com");
await _notificationSender.SendNofiterAsync(
"YourNotification",
notificationData,
userIds: new[] { CurrentUser.Id }
);
}
}
```
## 注意事项
1. 使用前需要在PushPlus平台注册并获取Token。
2. 确保配置的Token有效且具有足够的权限。
3. 回调URL必须是可以公网访问的地址。
4. 不同渠道可能有不同的消息格式要求。
5. 消息发送依赖于PushPlus API,需要确保网络连接正常。
## 更多信息
* [PushPlus官方文档](http://www.pushplus.plus/doc/)
* [ABP文档](https://docs.abp.io)

88
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.SignalR/README.EN.md

@ -0,0 +1,88 @@
# LINGYUN.Abp.Notifications.SignalR
The SignalR module of the notification system, providing real-time notification functionality based on SignalR.
## Features
* Real-time notification push
* Notification Hub implementation
* Client connection management
* Support for group notifications
* Support for user online status management
## Module References
```csharp
[DependsOn(typeof(AbpNotificationsSignalRModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Configuration
```json
{
"SignalR": {
"HubUrl": "/signalr-hubs/notifications",
"UseMessagePack": false
}
}
```
## Hub Definitions
### NotificationHub
* SubscribeToNotifications - Subscribe to notifications
* UnsubscribeFromNotifications - Unsubscribe from notifications
* GetNotifications - Get notification list
* MarkNotificationAsRead - Mark notification as read
* MarkAllNotificationsAsRead - Mark all notifications as read
## Basic Usage
1. Server Configuration
```csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR()
.AddMessagePackProtocol(); // Optional, use MessagePack protocol
}
public void Configure(IApplicationBuilder app)
{
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<NotificationHub>("/signalr-hubs/notifications");
});
}
}
```
2. Client Usage
```javascript
// Connect to notification hub
const connection = new signalR.HubConnectionBuilder()
.withUrl("/signalr-hubs/notifications")
.build();
// Listen for notifications
connection.on("ReceiveNotification", (notification) => {
console.log("Received new notification:", notification);
});
// Start connection
await connection.start();
// Subscribe to notifications
await connection.invoke("SubscribeToNotifications");
```
## More Information
* [ABP Documentation](https://docs.abp.io)
* [SignalR Documentation](https://docs.microsoft.com/aspnet/core/signalr)

88
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.SignalR/README.md

@ -0,0 +1,88 @@
# LINGYUN.Abp.Notifications.SignalR
通知系统的SignalR模块,提供了基于SignalR的实时通知功能。
## 功能特性
* 实时通知推送
* 通知Hub实现
* 客户端连接管理
* 支持分组通知
* 支持用户在线状态管理
## 模块引用
```csharp
[DependsOn(typeof(AbpNotificationsSignalRModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## 配置项
```json
{
"SignalR": {
"HubUrl": "/signalr-hubs/notifications",
"UseMessagePack": false
}
}
```
## Hub定义
### NotificationHub
* SubscribeToNotifications - 订阅通知
* UnsubscribeFromNotifications - 取消订阅通知
* GetNotifications - 获取通知列表
* MarkNotificationAsRead - 标记通知为已读
* MarkAllNotificationsAsRead - 标记所有通知为已读
## 基本用法
1. 服务端配置
```csharp
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR()
.AddMessagePackProtocol(); // 可选,使用MessagePack协议
}
public void Configure(IApplicationBuilder app)
{
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<NotificationHub>("/signalr-hubs/notifications");
});
}
}
```
2. 客户端使用
```javascript
// 连接到通知Hub
const connection = new signalR.HubConnectionBuilder()
.withUrl("/signalr-hubs/notifications")
.build();
// 监听通知
connection.on("ReceiveNotification", (notification) => {
console.log("收到新通知:", notification);
});
// 启动连接
await connection.start();
// 订阅通知
await connection.invoke("SubscribeToNotifications");
```
## 更多信息
* [ABP文档](https://docs.abp.io)
* [SignalR文档](https://docs.microsoft.com/aspnet/core/signalr)

98
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Sms/README.EN.md

@ -0,0 +1,98 @@
# LINGYUN.Abp.Notifications.Sms
SMS implementation of notification publishing provider
Most rewritten modules maintain the same name as the official modules and are distinguished by namespace, mainly because only a small part was rewritten or additional functionality was added.
If most of the module code is rewritten, or if it's a completely extended module, then it will have its own name.
#### Note
Custom sending methods can be implemented by implementing the ##ISmsNotificationSender## interface or overriding ##SmsNotificationSender##
## Features
* SMS notification sending
* SMS template support
* Support for multiple SMS service providers
* Support for SMS variable replacement
* Support for batch sending
## Configuration
* This configuration item will be removed in the next major SMS-related version
```json
{
"Notifications": {
"Sms": {
"TemplateParamsPrefix": "SMS template variable prefix"
}
}
}
```
```csharp
[DependsOn(typeof(AbpNotificationsSmsModule))]
public class YouProjectModule : AbpModule
{
// other
}
```
## Basic Usage
1. Implement SMS sending interface
```csharp
public class YourSmsNotificationSender : SmsNotificationSender
{
public override async Task SendAsync(NotificationInfo notification)
{
var templateParams = GetTemplateParams(notification);
await SmsService.SendAsync(
notification.UserPhoneNumber,
notification.Title,
templateParams
);
}
}
```
2. Register SMS sending service
```csharp
Configure<AbpNotificationsSmsOptions>(options =>
{
options.TemplateParamsPrefix = "sms_"; // SMS template variable prefix
});
```
3. Send SMS notification
```csharp
public class YourService
{
private readonly INotificationSender _notificationSender;
public YourService(INotificationSender notificationSender)
{
_notificationSender = notificationSender;
}
public async Task SendSmsNotificationAsync()
{
await _notificationSender.SendNofiterAsync(
"YourNotification",
new NotificationData
{
// SMS template parameters
["sms_code"] = "123456",
["sms_time"] = "5"
},
userIds: new[] { CurrentUser.Id }
);
}
}
```
## More Information
* [ABP Documentation](https://docs.abp.io)
* [SMS Service Documentation](https://docs.abp.io/en/abp/latest/SMS-Sending)

66
aspnet-core/modules/realtime-notifications/LINGYUN.Abp.Notifications.Sms/README.md

@ -9,6 +9,14 @@
自定义的发送方法可以通过实现 ##ISmsNotificationSender## 接口或重写 ##SmsNotificationSender## 即可
## 功能特性
* 短信通知发送
* 短信模板支持
* 支持多个短信服务商
* 支持短信变量替换
* 支持批量发送
## 配置使用
* 此配置项将在下一个短信相关大版本移除
@ -31,3 +39,61 @@ public class YouProjectModule : AbpModule
{
// other
}
## 基本用法
1. 实现短信发送接口
```csharp
public class YourSmsNotificationSender : SmsNotificationSender
{
public override async Task SendAsync(NotificationInfo notification)
{
var templateParams = GetTemplateParams(notification);
await SmsService.SendAsync(
notification.UserPhoneNumber,
notification.Title,
templateParams
);
}
}
```
2. 注册短信发送服务
```csharp
Configure<AbpNotificationsSmsOptions>(options =>
{
options.TemplateParamsPrefix = "sms_"; // 短信模板变量前缀
});
```
3. 发送短信通知
```csharp
public class YourService
{
private readonly INotificationSender _notificationSender;
public YourService(INotificationSender notificationSender)
{
_notificationSender = notificationSender;
}
public async Task SendSmsNotificationAsync()
{
await _notificationSender.SendNofiterAsync(
"YourNotification",
new NotificationData
{
// 短信模板参数
["sms_code"] = "123456",
["sms_time"] = "5"
},
userIds: new[] { CurrentUser.Id }
);
}
}
```
## 更多信息
* [ABP文档](https://docs.abp.io)
* [短信服务文档](https://docs.abp.io/en/abp/latest/SMS-Sending)

Loading…
Cancel
Save