示例#1
0
        public Task <IEventPersistence.AppendEventResult> AppendEvent(IEventPersistence.Event @event)
        {
            var  streamName           = @event.StreamName;
            long actualStreamPosition = 0;

            if (!_streams.ContainsKey(streamName))
            {
                _streams.Add(streamName, new List <IndexedStreamEvent>());
            }
            else
            {
                actualStreamPosition = _streams[streamName].Last().StreamPosition;
            }

            var persistedEvent = new PersistedEvent(_globalPosition, actualStreamPosition, @event);

            _events.Add(persistedEvent);
            _streams[streamName].Add(new IndexedStreamEvent(streamName, actualStreamPosition, _globalPosition));
            _globalPosition += 1;

            return(Task.FromResult(new IEventPersistence.AppendEventResult(actualStreamPosition)));
        }
 public Task <IEventPersistence.AppendEventResult> AppendEvent(IEventPersistence.Event @event)
 {
     throw new System.NotImplementedException();
 }