Beispiel #1
0
        public async Task <TaskCompletionSource <Tour> > SubscribeAndGetAsync <TEvent>(
            Func <int, TaskCompletionSource <Tour>, Task> onMessageReceived,
            int id) where TEvent : IEvent
        {
            var taskCompletionSource = new TaskCompletionSource <Tour>();
            var guid = Guid.NewGuid().ToString();

            await _client.SubscribeAsync <TEvent>(
                async _ => await onMessageReceived(id, taskCompletionSource),
                ctx => ctx.UseSubscribeConfiguration(cfg =>
                                                     cfg.FromDeclaredQueue(
                                                         builder => builder
                                                         .WithDurability(false)
                                                         .WithName(guid))));

            return(taskCompletionSource);
        }
        public async Task <TaskCompletionSource <TEvent> > SubscribeAndGetAsync <TEvent>(
            Func <TEvent, TaskCompletionSource <TEvent>, Task> onMessageReceived, string queueName) where TEvent : IEvent
        {
            var taskCompletionSource = new TaskCompletionSource <TEvent>();
            var guid = Guid.NewGuid().ToString();

            await _client.SubscribeAsync <TEvent>(async (@event) => await onMessageReceived(@event, taskCompletionSource)
                                                  ,
                                                  ctx => ctx.UseSubscribeConfiguration(cfg =>
                                                                                       cfg.FromDeclaredQueue(q => q.WithName(GetQueueName <TEvent>(option.Namespace, queueName)))));

            return(taskCompletionSource);
        }