load method
Load current state from given events
.
If aggregate is already loaded or
changed, an DomainException is thrown.
Implementation
AggregateStateResult<TEvent, TValue, TId, TState> load(
Iterable<TEvent> events) {
if (currentVersion > -1) {
throw DomainException(
'$runtimeType is already ${isChanged ? 'created' : 'loaded'}',
);
}
_current = events.fold(
_original,
(previous, event) => previous.when<TEvent, TState>(event),
);
// _current._version = events.length - 1;
return AggregateStateResult.ok(
current: _current,
previous: _original,
);
}