0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-30 02:31:08 +00:00
CleanArchitecture/CleanArchitecture.Domain/EventHandler/Fanout/FanoutEventHandler.cs
2025-03-15 22:56:21 +01:00

33 lines
882 B
C#

using System.Threading.Tasks;
using CleanArchitecture.Domain.Interfaces;
using CleanArchitecture.Shared.Events;
using MassTransit;
namespace CleanArchitecture.Domain.EventHandler.Fanout;
public sealed class FanoutEventHandler : IFanoutEventHandler
{
private readonly IPublishEndpoint _massTransit;
private readonly IUser _user;
public FanoutEventHandler(
IPublishEndpoint massTransit, IUser user)
{
_massTransit = massTransit;
_user = user;
}
public async Task<T> HandleDomainEventAsync<T>(T @event) where T : DomainEvent
{
var fanoutDomainEvent =
new FanoutDomainEvent(
@event.AggregateId,
@event,
_user.GetUserId());
await _massTransit.Publish(fanoutDomainEvent);
await _massTransit.Publish(@event);
return @event;
}
}