Ejemplo n.º 1
0
 public Task <IEnumerable <IRecordedEvent> > GetAggregateEvents <T>(long fromEventNumber, int maxCount) where T : IAggregate
 {
     return(Task.FromResult(Transform(Events.Where(e => e.EventNumber >= fromEventNumber && e.AggregateType == _typeMapper.GetAggregateName <T>()).Take(maxCount))));
 }
Ejemplo n.º 2
0
 public IObservable <IRecordedEvent> AggregateEventStream <T>() where T : IAggregate => _eventSubject.Where(e => e.AggregateType == _typeMapper.GetAggregateName <T>());
Ejemplo n.º 3
0
 public IRecordedSnapshot <TState> Create <TAggregate, TState>(TAggregate aggregate)
     where TAggregate : IAggregate <TState>
 {
     return(new RecordedSnapshot <TState>(aggregate.GetId(), _typeMapper.GetAggregateName <TAggregate, TState>(), aggregate.Version, aggregate.GetState(), _metadataFactory.Create <TAggregate, TState>(aggregate), DateTimeOffset.Now));
 }
Ejemplo n.º 4
0
        public virtual Task <IEnumerable <IRecordedEvent <TState> > > GetAggregateEvents <TAggregate, TState>(long fromEventNumber, int maxCount) where TAggregate : IAggregate <TState>
        {
            var query = $"SELECT TOP ({maxCount}) {_eventColumns} FROM {_options.EventsTableName} WHERE EventNumber >= {fromEventNumber} AND AggregateType = '{_typeMapper.GetAggregateName<TAggregate, TState>()}'";

            return(Task.Run(() => QueryEvents <TState>(query)));
        }
Ejemplo n.º 5
0
 public IPendingEvent Create <T>(T aggregate, IEvent @event) where T : IAggregate <T>
 {
     return(new PendingEvent(Guid.NewGuid(), _typeMapper.GetEventName(@event.GetType()), aggregate.Id, _typeMapper.GetAggregateName <T>(), @event, new EmptyMetadata()));
 }
Ejemplo n.º 6
0
 public IPendingEvent Create <TAggregate, TState>(TAggregate aggregate, IEvent <TState> @event) where TAggregate : IAggregate <TState>
 {
     return(new PendingEvent(Guid.NewGuid(), _typeMapper.GetEventName(@event.GetType()), aggregate.GetId(), _typeMapper.GetAggregateName <TAggregate, TState>(), @event, _metadataFactory.Create <TAggregate, TState>(aggregate)));
 }