public override Task ReadAsync(CancellationToken cancellationToken, OnDeserializeEventDelegate onDeserializeEvent) { foreach (var uncommittedEvent in _uncommittedEvents) { onDeserializeEvent(uncommittedEvent.Data, uncommittedEvent.Metadata); } return(Task.CompletedTask); }
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); } } }
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); } } }
public abstract Task ReadAsync(CancellationToken cancellationToken, OnDeserializeEventDelegate onDeserializeEvent);