Abp模块
abp
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

132 lines
4.3 KiB

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace Sanhe.Abp.Notifications;
/// <summary>
/// 通知订阅管理器
/// </summary>
public interface INotificationSubscriptionManager
{
/// <summary>
/// 是否已订阅
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="userId">用户标识</param>
/// <param name="notificationName">通知名称</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<bool> IsSubscribedAsync(
Guid? tenantId,
Guid userId,
string notificationName,
CancellationToken cancellationToken = default);
/// <summary>
/// 订阅通知
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="identifier">用户标识</param>
/// <param name="notificationName">通知名称</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task SubscribeAsync(
Guid? tenantId,
UserIdentifier identifier,
string notificationName,
CancellationToken cancellationToken = default);
/// <summary>
/// 订阅通知
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="identifiers">用户标识列表</param>
/// <param name="notificationName">通知名称</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task SubscribeAsync(
Guid? tenantId,
IEnumerable<UserIdentifier> identifiers,
string notificationName,
CancellationToken cancellationToken = default);
/// <summary>
/// 取消所有用户订阅
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="notificationName">通知名称</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task UnsubscribeAllAsync(
Guid? tenantId,
string notificationName,
CancellationToken cancellationToken = default);
/// <summary>
/// 取消订阅
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="identifier">用户标识</param>
/// <param name="notificationName">通知名称</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task UnsubscribeAsync(
Guid? tenantId,
UserIdentifier identifier,
string notificationName,
CancellationToken cancellationToken = default);
/// <summary>
/// 取消订阅
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="identifiers">用户标识列表</param>
/// <param name="notificationName">通知名称</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task UnsubscribeAsync(
Guid? tenantId,
IEnumerable<UserIdentifier> identifiers,
string notificationName,
CancellationToken cancellationToken = default);
/// <summary>
/// 获取通知被订阅用户列表
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="notificationName">通知名称</param>
/// <param name="identifiers">需要检查的用户列表</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<List<NotificationSubscriptionInfo>> GetUsersSubscriptionsAsync(
Guid? tenantId,
string notificationName,
IEnumerable<UserIdentifier> identifiers = null,
CancellationToken cancellationToken = default);
/// <summary>
/// 获取用户订阅列表
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="userId">用户标识</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<List<NotificationSubscriptionInfo>> GetUserSubscriptionsAsync(
Guid? tenantId,
Guid userId,
CancellationToken cancellationToken = default);
/// <summary>
/// 获取用户订阅列表
/// </summary>
/// <param name="tenantId">租户</param>
/// <param name="userName">用户名</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<List<NotificationSubscriptionInfo>> GetUserSubscriptionsAsync(
Guid? tenantId,
string userName,
CancellationToken cancellationToken = default);
}