/// <summary> /// Retrieves list of edges from specified edge type collection to specified document vertex with given direction. /// </summary> /// <exception cref="ArgumentException">Specified 'startVertexID' value has invalid format.</exception> public async Task <AResult <List <Dictionary <string, object> > > > GetEdges(string startVertexID, ADirection direction) { if (!Helpers.IsID(startVertexID)) { throw new ArgumentException("Specified 'startVertexID' value (" + startVertexID + ") has invalid format."); } var request = _requestFactory.Create(HttpMethod.Get, ApiBaseUri.Edges, "/" + Name); // required request.QueryString.Add(ParameterName.Vertex, startVertexID); // required request.QueryString.Add(ParameterName.Direction, direction.ToString().ToLower()); var result = await _connection.RequestQuery <Dictionary <string, object> >(request); if (!result.Success) { switch (result.StatusCode) { case 404: throw new CollectionNotFoundException(); default: throw new ArangoException(); } } return(new AResult <List <Dictionary <string, object> > >() { StatusCode = result.StatusCode, Success = result.Success, Value = result.Value["edges"] as List <Dictionary <string, object> > }); }
/// <summary> /// Retrieves list of edges from specified edge type collection to specified document vertex with given direction. /// </summary> /// <exception cref="ArgumentException">Specified 'startVertexID' value has invalid format.</exception> public AResult <List <Dictionary <string, object> > > GetEdges(string collectionName, string startVertexID, ADirection direction) { if (!IsID(startVertexID)) { throw new ArgumentException("Specified 'startVertexID' value (" + startVertexID + ") has invalid format."); } var request = new Request(HttpMethod.GET, ApiBaseUri.Edges, "/" + collectionName); // required request.QueryString.Add(ParameterName.Vertex, startVertexID); // required request.QueryString.Add(ParameterName.Direction, direction.ToString().ToLower()); var response = _connection.Send(request); var result = new AResult <List <Dictionary <string, object> > >(response); switch (response.StatusCode) { case 200: var body = response.ParseBody <Dictionary <string, object> >(); result.Success = (body != null); if (result.Success) { result.Value = body.List <Dictionary <string, object> >("edges"); } break; case 400: case 404: default: // Arango error break; } _parameters.Clear(); return(result); }