using System.Collections.Generic; namespace EventSourcing.Demo { public abstract class AggregateRoot { private readonly IList<IEvent> _uncommittedEvents = new List<IEvent>(); public IList<IEvent> GetUncommittedEvents() { return _uncommittedEvents; } public void ClearUncommittedEvents() { _uncommittedEvents.Clear(); } protected void Add(IEvent evnt) { _uncommittedEvents.Add(evnt); } public abstract void Load(IEnumerable<IEvent> events); } }