コード例 #1
0
ファイル: EventStore.cs プロジェクト: xKloc/EventSourcR
 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))));
 }
コード例 #2
0
 public IObservable <IRecordedEvent> AggregateEventStream <T>() where T : IAggregate => _eventSubject.Where(e => e.AggregateType == _typeMapper.GetAggregateName <T>());
コード例 #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));
 }
コード例 #4
0
ファイル: EventStore.cs プロジェクト: xKloc/Memoir
        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)));
        }
コード例 #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()));
 }
コード例 #6
0
ファイル: PendingEventFactory.cs プロジェクト: xKloc/Memoir
 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)));
 }