Пример #1
0
        private IEvent[] DeserializeEvents(Guid streamId, EventRecord[] records, IRestoredMemento snapshot)
        {
            var events = new List <IEvent>(records.Length);

            if (snapshot != null)
            {
                events.Add(snapshot);
            }
            var start = snapshot == null ? 0 : 1;

            for (var i = start; i < records.Length; i++)
            {
                var record = records[i];
                events.Add(DeserializeEvent(streamId, record.ContractName, record.Version, record.Payload));
            }
            return(events.ToArray());
        }
Пример #2
0
 private static int CalculateCurrentVersion(int fromVersion, IEvent[] events, IRestoredMemento snapshot)
 {
     return(snapshot?.Version + (events.Length - 1) + (fromVersion - 1) ?? events.Length + (fromVersion - 1));
 }