@@ -1,32 +1,32 @@
|
||||
using IM_API.Application.Interfaces;
|
||||
using IM_API.Domain.Interfaces;
|
||||
|
||||
namespace IM_API.Infrastructure.EventBus
|
||||
{
|
||||
public class InMemoryEventBus : IEventBus
|
||||
{
|
||||
private IServiceProvider _serviceProvider;
|
||||
private ILogger<InMemoryEventBus> _logger;
|
||||
public InMemoryEventBus(IServiceProvider serviceProvider, ILogger<InMemoryEventBus> logger)
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task PublishAsync<TEvent>(TEvent @event) where TEvent : IEvent
|
||||
{
|
||||
var handlers = _serviceProvider.GetServices<IEventHandler<TEvent>>();
|
||||
foreach (var handler in handlers)
|
||||
{
|
||||
try
|
||||
{
|
||||
await handler.Handle(@event);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
_logger.LogError("EventHandler error:"+e.Message, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
using IM_API.Application.Interfaces;
|
||||
using IM_API.Domain.Interfaces;
|
||||
|
||||
namespace IM_API.Infrastructure.EventBus
|
||||
{
|
||||
public class InMemoryEventBus : IEventBus
|
||||
{
|
||||
private IServiceProvider _serviceProvider;
|
||||
private ILogger<InMemoryEventBus> _logger;
|
||||
public InMemoryEventBus(IServiceProvider serviceProvider, ILogger<InMemoryEventBus> logger)
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async Task PublishAsync<TEvent>(TEvent @event) where TEvent : IEvent
|
||||
{
|
||||
var handlers = _serviceProvider.GetServices<IEventHandler<TEvent>>();
|
||||
foreach (var handler in handlers)
|
||||
{
|
||||
try
|
||||
{
|
||||
await handler.Handle(@event);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
_logger.LogError("EventHandler error:"+e.Message, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user