private static IEnumerable <T> ReadResult <T>(IEventStoreConnection connection, string streamName, long lastEventNumber) { var result = new List <T>(); do { var events = connection.ReadStreamEventsBackwards(streamName, lastEventNumber); result.AddRange(events.Events.Select(e => e.ParseJson <T>())); lastEventNumber = events.NextEventNumber; } while (lastEventNumber != -1); return(result); }