Ejemplo n.º 1
0
        static IEnumerable <QueryResultItem <T> > GenerateCore <T>(QueryContext context, T seed, Func <T, IQuery <T> > generator)
        {
            yield return(QueryResultItem.Create(context, seed));

            var current = seed;

            while (true)
            {
                foreach (var next in generator(current).GetResult(context))
                {
                    yield return(next);

                    current = next.Value;
                    context = next.Context;
                }
            }
        }
Ejemplo n.º 2
0
 public static IQuery <T> ToQuery <T>(this IEnumerable <T> items) =>
 Create(context => QueryResult.Create(from item in items select QueryResultItem.Create(context, item)));
Ejemplo n.º 3
0
 public static QueryResult <T> Singleton <T>(QueryContext context, T value) =>
 Singleton(QueryResultItem.Create(context, value));
Ejemplo n.º 4
0
 public static QueryResult <T> Singleton <T>(QueryResultItem <T> item) =>
 new QueryResult <T>(new[] { item });
Ejemplo n.º 5
0
 static IEnumerable <QueryResultItem <TResult> > SelectManyIterator <T1, T2, TResult>(QueryContext context, QueryResult <T1> xs, Func <T1, IQuery <T2> > f, Func <T1, T2, TResult> g) =>
 from x in xs
 from result in f(x.Value).GetResult(x.Context)
 select QueryResultItem.Create(result.Context, g(x, result.Value));