public MessageBusSubscriberService( IMessageBusSubscriber <TMessage> messageBusSubscriber, IServiceProvider serviceProvider, MessagingContextAccessor messagingContextAccessor, ILogger <MessageBusSubscriberService <TMessage> > logger, MessagingSubscriberOptions subscriberOptions = null ) { _subscriberOptions = subscriberOptions; _messageBusSubscriber = messageBusSubscriber; _serviceProvider = serviceProvider; _messagingContextAccessor = messagingContextAccessor; _logger = logger; }
public static async Task <MessagingEnvelope <TMessage> > WaitForMessage <TMessage>(this IMessageBusSubscriber <TMessage> subscriber, Func <MessagingEnvelope <TMessage>, bool> predicate, CancellationToken cancellationToken = default) { var tcs = new TaskCompletionSource <MessagingEnvelope <TMessage> >(); async Task HandleMessage(MessagingEnvelope <TMessage> msg) { if (predicate(msg)) { tcs.SetResult(msg); await subscriber.UnSubscribeAsync(HandleMessage, cancellationToken); } } await subscriber.SubscribeAsync(HandleMessage, cancellationToken); return(await tcs.Task); }
public MessagingEventStoreSubscriber(IMessageBusSubscriber <IEvent> messageBusSubscriber, MessagingTopicResolver messagingTopicResolver, MessagingSubscriberOptions subscriberOptions) { _messageBusSubscriber = messageBusSubscriber; _messagingTopicResolver = messagingTopicResolver; _subscriberOptions = subscriberOptions; }
public MessageBus(IMessageBusSubscriber busSubscriber, IMessageBusPublisher busPublisher) { _busSubscriber = busSubscriber; _busPublisher = busPublisher; }