/// <summary> /// Executes a server-side traversal /// </summary> /// <typeparam name="TVertex">Type of vertex</typeparam> /// <typeparam name="TEdge">Type of edge</typeparam> /// <param name="config">Configuration for the traversal</param> /// <param name="startVertex">Id of the startVertex</param> /// <param name="baseResult"></param> /// <returns>TraversalResult<TVertex, TEdge></returns> public async Task <TraversalResult <TVertex, TEdge> > TraverseAsync <TVertex, TEdge>(TraversalConfig config, string startVertex = null, Action <BaseResult> baseResult = null) { var command = new HttpCommand(this) { Api = CommandApi.Traversal, Method = HttpMethod.Post }; config.StartVertex = startVertex ?? config.StartVertex; var result = await command.RequestMergedResult <TraversalContainerResult <TVertex, TEdge> >(config).ConfigureAwait(false); if (baseResult != null) { baseResult(result.BaseResult); } return(result.Result.Result); }
/// <summary> /// Executes a server-side traversal /// </summary> /// <typeparam name="TVertex">Type of vertex</typeparam> /// <typeparam name="TEdge">Type of edge</typeparam> /// <param name="config">Configuration for the traversal</param> /// <param name="startVertex">Id of the startVertex</param> /// <param name="baseResult"></param> /// <returns>TraversalResult<TVertex, TEdge></returns> public TraversalResult <TVertex, TEdge> Traverse <TVertex, TEdge>(TraversalConfig config, string startVertex = null, Action <BaseResult> baseResult = null) { return(TraverseAsync <TVertex, TEdge>(config, startVertex, baseResult).ResultSynchronizer()); }