Exemplo n.º 1
0
        public override Task ReadAsync(CancellationToken cancellationToken, OnDeserializeEventDelegate onDeserializeEvent)
        {
            foreach (var uncommittedEvent in _uncommittedEvents)
            {
                onDeserializeEvent(uncommittedEvent.Data, uncommittedEvent.Metadata);
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 2
0
        public override async Task ReadAsync(CancellationToken cancellationToken, OnDeserializeEventDelegate wireDelegate)
        {
            using (var sr = new StreamReader(_source, Encoding.UTF8))
            {
                while (!sr.EndOfStream)
                {
                    cancellationToken.ThrowIfCancellationRequested();

                    var json = await sr.ReadLineAsync();

                    var @event = JsonConvert.DeserializeObject(json, JsonSettings.Default);

                    wireDelegate(@event, null);
                }
            }
        }
Exemplo n.º 3
0
        public override async Task ReadAsync(CancellationToken cancellationToken, OnDeserializeEventDelegate onDeserializeEvent)
        {
            var eventsCollection = _database.GetCollection <BsonDocument>(_settings.EventsCollectionName);

            var sort = new BsonDocument
            {
                { "timestamp", 1 },
                { "metadata.eventVersion", 1 }
            };

            var filterBuilder = new FilterDefinitionBuilder <BsonDocument>();

            var filter = FilterDefinition <BsonDocument> .Empty;

            if (Match != null)
            {
                filter = Match(filterBuilder);
            }

            var query = eventsCollection.Aggregate().Match(filter).Sort(sort);

            query.Options.AllowDiskUse = true;
            query.Options.BatchSize    = BatchSize;

            var cursor = await query.ToCursorAsync().ConfigureAwait(false);

            while (await cursor.MoveNextAsync().ConfigureAwait(false))
            {
                foreach (var item in cursor.Current)
                {
                    var @event   = CreateEvent(item);
                    var metadata = CreateMetadata(item);

                    onDeserializeEvent(@event, metadata);
                }
            }
        }
Exemplo n.º 4
0
 public abstract Task ReadAsync(CancellationToken cancellationToken, OnDeserializeEventDelegate onDeserializeEvent);