/// <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);
        }
Example #2
0
        /// <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> >
            });
        }