public static ITraversalQueryable <TraversalData <TVertex, TEdge> > OutBound <TVertex, TEdge>(
     this ITraversalQueryable <TraversalData <TVertex, TEdge> > source)
 {
     return(source.Provider.CreateQuery <TraversalData <TVertex, TEdge> >(
                Expression.Call(
                    ArangoQueryableExtensions.FindExtention("Traversal_OutBound", typeof(TVertex), typeof(TEdge)),
                    source.Expression)) as ITraversalQueryable <TraversalData <TVertex, TEdge> >);
 }
 public static ITraversalQueryable <TraversalData <TVertex, TEdge> > Options <TVertex, TEdge>(
     this ITraversalQueryable <TraversalData <TVertex, TEdge> > source, object options)
 {
     return(source.Provider.CreateQuery <TraversalData <TVertex, TEdge> >(
                Expression.Call(
                    ArangoQueryableExtensions.FindExtention("Traversal_Options", typeof(TVertex), typeof(TEdge)),
                    source.Expression,
                    Expression.Constant(options))) as ITraversalQueryable <TraversalData <TVertex, TEdge> >);
 }
 public static ITraversalQueryable <TraversalData <TVertex, TEdge> > Depth <TVertex, TEdge>(
     this ITraversalQueryable <TraversalData <TVertex, TEdge> > source, int min, int max)
 {
     return(source.Provider.CreateQuery <TraversalData <TVertex, TEdge> >(
                Expression.Call(
                    ArangoQueryableExtensions.FindExtention("Traversal_Depth", typeof(TVertex), typeof(TEdge)),
                    source.Expression,
                    Expression.Constant(min),
                    Expression.Constant(max))) as ITraversalQueryable <TraversalData <TVertex, TEdge> >);
 }
 public static ITraversalQueryable <TraversalData <TVertex, TEdge> > Edge <TVertex, TEdge>(
     this ITraversalQueryable <TraversalData <TVertex, TEdge> > source, string collectionName)
 {
     return(source.Provider.CreateQuery <TraversalData <TVertex, TEdge> >(
                Expression.Call(
                    ArangoQueryableExtensions.FindExtention("Traversal_Edge", typeof(TVertex), typeof(TEdge)),
                    source.Expression,
                    Expression.Constant(collectionName)
                    )) as ITraversalQueryable <TraversalData <TVertex, TEdge> >);
 }
 public static ITraversalQueryable <TraversalData <TVertex, TEdge> > Graph <TVertex, TEdge>(this ITraversalQueryable <TraversalData <TVertex, TEdge> > source, string graphName)
 {
     return(source.Provider.CreateQuery <TraversalData <TVertex, TEdge> >(
                Expression.Call(
                    QueryableExtensions.FindExtention("Traversal_Graph", typeof(TVertex), typeof(TEdge)),
                    source.Expression,
                    Expression.Constant(graphName)
                    )) as ITraversalQueryable <TraversalData <TVertex, TEdge> >);
 }