public static Task <TResult> FromTaskEnumerable <T, TResult>(this TaskFactory taskFactory, Task <IEnumerable <T> > task, Func <T, Task <bool> > predicate, Func <IEnumerable <T>, Func <T, bool>, TResult> func, CancellationToken cancellationToken = default(CancellationToken)) { var source = new AsyncWhereEnumerable <T>(task, predicate, cancellationToken); Func <T, bool> predicateOrdered = source1 => predicate(source1).Result; return(Task.Factory.FromEnumerable(source, predicateOrdered, func, cancellationToken)); }
public static Task <AsyncWhereEnumerable <T> > FromWhereTaskEnumerable <T>(this TaskFactory taskFactory, Task <IEnumerable <T> > task, Func <T, int, Task <bool> > predicate, Func <IEnumerable <T>, Func <T, int, bool>, IEnumerable <T> > func, CancellationToken cancellationToken = default(CancellationToken)) { var source = new AsyncWhereEnumerable <T>(task, predicate, cancellationToken); var taskEnumerable = FromTaskEnumerable(taskFactory, source, enums => enums, AsyncWhereEnumerable <T> .CreateFrom, cancellationToken); var taskWhereEnumerable = taskEnumerable.ContinueWith((t, x) => new AsyncWhereEnumerable <T>(t.Result), source, cancellationToken, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default); return(taskWhereEnumerable); }
public static Task <TResult> FromEnumerable <T, TResult>(this TaskFactory taskFactory, IEnumerable <T> source, Func <T, Task <bool> > predicate, Func <IEnumerable <T>, Func <T, bool>, TResult> func, bool skipFilterPredicate, CancellationToken cancellationToken = default(CancellationToken)) { source = new AsyncWhereEnumerable <T>(source, predicate, cancellationToken) { SkipFilterPredicate = skipFilterPredicate }; Func <T, bool> predicateOrdered = source1 => predicate(source1).Result; return(Task.Factory.FromEnumerable(source, predicateOrdered, func, cancellationToken)); }