Exemplo n.º 1
0
        public async Task StartAsync(TimeSpan updateInvervall)
        {
            long?pos = await gtw.GetAsync(subscriber.StreamName);

            IObservable <OccuredEvent> feed = subscriber.Start(pos);

            feed
            .Do(x => handler.HandleAsync(x.Event).Wait())
            .Buffer(updateInvervall)
            .Subscribe(i => UpdatePosition(i).Wait());
        }
Exemplo n.º 2
0
        public async Task StartAsync(TimeSpan updateInvervall)
        {
            long?pos = await gtw.GetAsync(subscriber.StreamName);

            IAsyncEnumerable <OccuredEvent> eventStream = subscriber.Start(pos);


            Subject <OccuredEvent> feed = new Subject <OccuredEvent>();

            feed
            .Do(x => handler.HandleAsync(x.Event).Wait())
            .Buffer(updateInvervall)
            .Subscribe(i => UpdatePosition(i).Wait());

            await foreach (var @event in eventStream)
            {
                feed.OnNext(@event);
            }

            feed.OnCompleted();
        }