public static ISourceBlock <TOutput> BindDataflow <TInput, TOutput>(this ISourceBlock <TInput> input,
                                                                            Func <IDataflowFactory, TInput, IDataflow <TOutput> > bindFunc)
        {
            var factory = new DataflowFactory(new DataflowTypeFactory());

            return(input.Select(item => bindFunc(factory, item)).TransformDataflows());
        }
 public override ISourceBlock <IDataflow <TOutput> > PerformOperator <TOutput>(ISourceBlock <DataflowCalculation <T, TOutput, ResultDataflow <T> > > calculationDataflows)
 {
     return(calculationDataflows
            .Select(dataflow =>
                    ((DataflowFactory)dataflow.Factory).CreateResultDataflow(
                        dataflow.Operator.Results.BindDataflow((factory, item) => dataflow.Continuation(item)))));
 }
 public override ISourceBlock <IList <T> > TransformDataFlows(ISourceBlock <ToList <T> > dataflows)
 {
     return(dataflows
            .Select(dataflow => dataflow.Item)
            .ToList());
 }
 public override ISourceBlock <IDataflow <TOutput> > PerformOperator <TOutput>(
     ISourceBlock <DataflowCalculation <T, TOutput, Return <T> > > calculationDataflows)
 {
     return(calculationDataflows.Select(dataflow =>
                                        dataflow.Continuation(dataflow.Operator.Result)));
 }
 public override ISourceBlock <T> TransformDataFlows(ISourceBlock <Return <T> > dataflows)
 {
     return(dataflows.Select(dataflow => dataflow.Result));
 }
Exemplo n.º 6
0
 public static ISourceBlock <TResult> Cast <TResult>(this ISourceBlock <object> source)
 {
     return(source.Select(item => (TResult)item));
 }
Exemplo n.º 7
0
 public static ISourceBlock <TOutput> SelectMany <TInput, TOutput>(
     this ISourceBlock <TInput> source, Func <TInput, ISourceBlock <TOutput> > selector)
 {
     return(source.Select(selector).Concat());
 }