IDomainEventDispatcher.cs
898 Bytes
using Rcs.Domain;
using Rcs.Domain.Entities;
namespace Rcs.Application;
/// <summary>
/// 领域事件分发器接口
/// </summary>
public interface IDomainEventDispatcher
{
/// <summary>
/// 分发并处理实体的所有领域事件
/// </summary>
/// <param name="entity">包含领域事件的实体</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns></returns>
Task DispatchEventsAsync(Entity entity, CancellationToken cancellationToken = default);
/// <summary>
/// 分发单个领域事件
/// </summary>
/// <typeparam name="T">领域事件类型</typeparam>
/// <param name="domainEvent">领域事件</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns></returns>
Task DispatchAsync<T>(T domainEvent, CancellationToken cancellationToken = default) where T : IDomainEvent;
}