load method

AggregateStateResult<TEvent, TValue, TId, TState> load(
  1. Iterable<TEvent> events
)

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,
  );
}