public async Task ApplyPendingEvents() { if (!this.PendingEvents.Any()) { return; } var eventsToApply = this.PendingEvents.OrderBy(x => x.Timestamp).Select(this.PendingEventToEvent).ToList(); this.Category = _eventsApplier.ApplyEvents(eventsToApply, this.Category); await this.PersistReadModel(); }
public async Task <IDataResult <T> > AggregateStream(string streamId) { var events = await this.GetEvents(streamId); if (!events.Any()) { return(new FailedDataResult <T>()); } var aggregate = _eventsApplier.ApplyEvents <T>(events); return(new SuccessfulDataResult <T>(aggregate)); }