using LiteCharms.Abstractions; using LiteCharms.Infrastructure.ServiceBus.Queues; namespace LiteCharms.Infrastructure.ServiceBus; public class SalesServiceBus(SalesQueue messages) : IEventBus { public async Task PublishAsync(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)); } } }