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);
        }