Exemplo n.º 1
0
        public T?AggregateStream <T>(Guid streamId, long version = 0, DateTimeOffset?timestamp = null, T?state = null, long fromVersion = 0) where T : class
        {
            var events = FetchStream(streamId, version, timestamp, fromVersion);

            var aggregator = _store.Options.Projections.AggregatorFor <T>();

            if (!events.Any())
            {
                return(null);
            }

            var aggregate = aggregator.Build(events, _session, state);

            var storage = _session.StorageFor <T>();

            if (storage is IDocumentStorage <T, Guid> s)
            {
                s.SetIdentity(aggregate, streamId);
            }

            return(aggregate);
        }
Exemplo n.º 2
0
 public IDocumentStorage Find(QuerySession session)
 {
     return(session.StorageFor <T>());
 }