public async Task <bool> TryRead( StreamId streamId, IHydrateEvents events, CancellationToken token = new CancellationToken()) { return(false); }
public async Task <bool> TryRead(StreamId streamId, IHydrateEvents events, CancellationToken token) { var table = await _table.GetOrCreate(); var hydratedAny = false; var query = table.CreateQuery <EventRecordTableEntity>() .Where(x => x.PartitionKey == streamId.Value) .Where(x => string.Compare(x.RowKey, "E^", StringComparison.Ordinal) > 0) .Where(x => string.Compare(x.RowKey, "F^", StringComparison.Ordinal) < 0) .AsTableQuery(); TableContinuationToken queryToken = null; do { var segment = await table.ExecuteQuerySegmentedAsync(query, queryToken, token); queryToken = segment.ContinuationToken; var eventsFromStore = segment .Select(x => { hydratedAny = true; var serializedEvent = new SerializedEvent(x.Type, x.Payload); return(_events.Deserialize(serializedEvent)); }); events.Hydrate(eventsFromStore); if (token.IsCancellationRequested) { throw new OperationCanceledException(token); } } while (queryToken != null); return(hydratedAny); }
public async Task Read( StreamId streamId, IHydrateEvents events, CancellationToken token = new CancellationToken()) { throw new StreamNotFoundException(); }
public async Task Read( StreamId streamId, IHydrateEvents events, CancellationToken token = new CancellationToken()) { events.Hydrate(new List <object> { new FakeHydratedEvent() }); }
public async Task Read(StreamId streamId, IHydrateEvents events, CancellationToken token) { var result = await TryRead(streamId, events, token); if (result) { return; } string message = $"Stream {streamId.Value} not found."; throw new StreamNotFoundException(message); }