コード例 #1
0
ファイル: Node.cs プロジェクト: gitana/cloudcms-csharp-driver
        public async Task <IAssociation> AssociateAsync(INode otherNode, QName associationTypeQName, Directionality directionality, JObject data)
        {
            if (data == null)
            {
                data = new JObject();
            }

            string uri = URI + "/associate";

            IDictionary <string, string> queryParams = new Dictionary <string, string>();

            queryParams.Add("node", otherNode.Id);
            queryParams.Add("type", associationTypeQName.ToString());
            if (!directionality.Equals(Directionality.DIRECTED))
            {
                queryParams.Add("directionality", directionality.ToString());
            }

            JObject response1 = await Driver.PostAsync(uri, queryParams);

            string associationId = (string)response1["_doc"];

            // Read back association object
            JObject response2 = await Driver.GetAsync(Branch.URI + "/nodes/" + associationId);

            Association association = new Association(Branch, response2);

            return(association);
        }
コード例 #2
0
ファイル: Node.cs プロジェクト: gitana/cloudcms-csharp-driver
        public async Task <List <IAssociation> > AssociationsAsync(QName associationTypeQName, Direction direction, JObject pagination = null)
        {
            if (pagination == null)
            {
                pagination = new JObject();
            }

            string uri = URI + "/associations";

            IDictionary <string, string> queryParams = pagination.ToObject <Dictionary <string, string> >();

            queryParams.Add("direction", direction.ToString());

            if (associationTypeQName != null)
            {
                queryParams.Add("type", associationTypeQName.ToString());
            }

            JObject response = await Driver.GetAsync(uri, queryParams);

            JArray associationArray          = (JArray)response.SelectToken("rows");
            List <IAssociation> associations = AssociationUtil.AssociationList(associationArray, Branch);

            return(associations);
        }
コード例 #3
0
        public async Task ChangeQNameAsync(QName newQName)
        {
            string uri = URI + "/change_qname";
            IDictionary <string, string> queryParams = new Dictionary <string, string>();

            queryParams.Add("qname", newQName.ToString());

            await Driver.PostAsync(uri, queryParams, new JObject());
        }
コード例 #4
0
ファイル: Node.cs プロジェクト: gitana/cloudcms-csharp-driver
        public async Task <List <IBaseNode> > QueryRelativesAsync(QName type, Direction direction, JObject query, JObject pagination = null)
        {
            pagination ??= new JObject();
            string uri = URI + "/relatives/query";

            Dictionary <string, string> queryParams = pagination.ToObject <Dictionary <string, string> >();

            queryParams.Add("type", type.ToString());
            queryParams.Add("direction", direction.ToString());

            HttpContent content  = new StringContent(query.ToString());
            JObject     response = await Driver.PostAsync(uri, queryParams, content);

            return(NodeUtil.NodeList(response, Branch));
        }
コード例 #5
0
ファイル: Node.cs プロジェクト: gitana/cloudcms-csharp-driver
        public async Task <List <IBaseNode> > ListRelativesAsync(QName type, Direction direction, JObject pagination = null)
        {
            string uri = URI + "/relatives";

            pagination ??= new JObject();

            Dictionary <string, string> queryParams = pagination.ToObject <Dictionary <string, string> >();

            queryParams.Add("type", type.ToString());
            queryParams.Add("direction", direction.ToString());

            JObject response = await Driver.GetAsync(uri, queryParams);

            return(NodeUtil.NodeList(response, Branch));
        }
コード例 #6
0
ファイル: Node.cs プロジェクト: gitana/cloudcms-csharp-driver
        public Task UnassociateAsync(INode targetNode, QName associationTypeQName, Directionality directionality)
        {
            string uri = URI + "/unassociate";

            IDictionary <string, string> queryParams = new Dictionary <string, string>();

            queryParams.Add("node", targetNode.Id);
            queryParams.Add("type", associationTypeQName.ToString());
            if (!directionality.Equals(Directionality.DIRECTED))
            {
                queryParams.Add("directionality", directionality.ToString());
            }

            return(Driver.PostAsync(uri, queryParams));
        }