Exemplo n.º 1
0
        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));
        }