コード例 #1
0
	    public void SaveEventStream(EventStream eventStream)
		{
	        if (eventStream.Removed)
	        {
                Remove(eventStream.Id);
	            return;
	        }

	        if (_eventStreams.ContainsKey(eventStream.Id))
			{
				_eventStreams.Remove(eventStream.Id);
			}

	        eventStream.AttemptSnapshot(100);
			_eventStreams.Add(eventStream.Id, new EventStream(eventStream.Id, eventStream.Version, eventStream.EventsAfter(0), eventStream.Snapshot));

			if (!eventStream.HasSnapshot)
			{
				return;
			}

			if (_snapshots.ContainsKey(eventStream.Id))
			{
				_snapshots.Remove(eventStream.Id);
			}

			_snapshots.Add(eventStream.Id, eventStream.Snapshot);
		}