Пример #1
0
 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;
 }
Пример #2
0
        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);
        }
Пример #3
0
 public MessagingEventStoreSubscriber(IMessageBusSubscriber <IEvent> messageBusSubscriber, MessagingTopicResolver messagingTopicResolver, MessagingSubscriberOptions subscriberOptions)
 {
     _messageBusSubscriber   = messageBusSubscriber;
     _messagingTopicResolver = messagingTopicResolver;
     _subscriberOptions      = subscriberOptions;
 }
Пример #4
0
 public MessageBus(IMessageBusSubscriber busSubscriber, IMessageBusPublisher busPublisher)
 {
     _busSubscriber = busSubscriber;
     _busPublisher  = busPublisher;
 }