public AggregationProjection <T> AggregateStreamsWith <T>() where T : class, new()
        {
            var aggregator = new Aggregator <T>();
            var finder     = new AggregateFinder <T>();
            var projection = new AggregationProjection <T>(finder, aggregator);

            Add(projection);

            return(projection);
        }
        public AggregationProjection <T> AggregateStreamsWith <T>() where T : class, new()
        {
            var aggregator = _options.Events.AggregateFor <T>();

            IAggregationFinder <T> finder = _options.Events.StreamIdentity == StreamIdentity.AsGuid
                ? (IAggregationFinder <T>) new AggregateFinder <T>()
                : new StringIdentifiedAggregateFinder <T>();

            var projection = new AggregationProjection <T>(finder, aggregator);

            Add(projection);

            return(projection);
        }