public static async Task <StreamProcessorChain <TIn, TIn> > Where <TIn>(this ITransactionalStreamProviderAggregate <TIn> source, Func <TIn, bool> filterFunc, IStreamProcessorAggregateFactory factory) { var processorAggregate = await factory.CreateWhere(filterFunc, await source.GetStreamIdentities()); var processorChain = new StreamProcessorChainStart <TIn, TIn>(processorAggregate, source, factory); return(processorChain); }
public static async Task <StreamProcessorChain <TIn, TOut> > Select <TIn, TOut>( this ITransactionalStreamProviderAggregate <TIn> source, Func <TIn, TOut> selectionFunc, IStreamProcessorAggregateFactory factory) { var processorAggregate = await factory.CreateSelect <TIn, TOut>(selectionFunc, await source.GetStreamIdentities()); var processorChain = new StreamProcessorChainStart <TIn, TOut>(processorAggregate, source, factory); return(processorChain); }
public StreamProcessorChainStart(IStreamProcessorAggregate <TIn, TOut> aggregate, ITransactionalStreamProviderAggregate <TIn> source, IStreamProcessorAggregateFactory factory) : base(aggregate, factory) { _source = source; }
public StreamProcessorChain(IStreamProcessorAggregate <TIn, TOut> aggregate, IStreamProcessorChain <TIn> previous) { Aggregate = aggregate; Factory = previous.Factory; _previous = previous; }
public StreamProcessorChain(IStreamProcessorAggregate <TIn, TOut> aggregate, IStreamProcessorAggregateFactory factory) { Aggregate = aggregate; Factory = factory; _previous = null; }