public static TAggregate Build <TAggregate>(AggragateId id, int loadedRevision, bool isReadOnly, IEnumerable <object> events) where TAggregate : AggregateState, new() { var state = new TAggregate { Id = id, LoadedRevision = loadedRevision, IsReadOnly = isReadOnly }; state._uncomittedEvents = state.IsReadOnly ? null : new List <Event>(); foreach (var @event in events) { state.When(@event); } return(state); }
protected Event(AggragateId aggregateId) { AggregateId = aggregateId; }