24 lines
680 B
C#
24 lines
680 B
C#
using LiteCharms.Features.Abstractions;
|
|
using LiteCharms.Features.ServiceBus.Abstractions;
|
|
using LiteCharms.Features.ServiceBus.Queues;
|
|
|
|
namespace LiteCharms.Features.ServiceBus;
|
|
|
|
public class SalesServiceBus(SalesQueue messages) : IEventBus
|
|
{
|
|
public async Task<Result> PublishAsync<TEvent>(TEvent notification, CancellationToken cancellationToken = default)
|
|
where TEvent : class, IEvent
|
|
{
|
|
try
|
|
{
|
|
await messages.Outgoing.WriteAsync(notification, cancellationToken);
|
|
|
|
return Result.Ok();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
return Result.Fail(new Error(ex.Message).CausedBy(ex));
|
|
}
|
|
}
|
|
}
|