public async Task Publish <TEvent>(TEvent @event, CancellationToken cancellationToken = default) where TEvent : IEvent { await mediator.Publish(@event, cancellationToken); if (@event is IExternalEvent externalEvent) { await externalEventProducer.Publish(externalEvent, cancellationToken); } }
public async Task Publish(params IEvent[] events) { foreach (var @event in events) { await mediator.Publish(@event); if (@event is IExternalEvent externalEvent) { await producer.Publish(externalEvent); } } }
public async Task Publish(CancellationToken cancellationToken, params IEvent[] events) { foreach (var @event in events) { await mediator.Publish(@event, cancellationToken); if (@event is IExternalEvent externalEvent) { await externalEventProducer.Publish(externalEvent, cancellationToken); } } }