public JObject ConstructNodeJsonDocument(string vertexLabel, List <WPropertyExpression> vertexProperties, out List <string> projectedFieldList) { Debug.Assert(vertexLabel != null); JObject vertexObject = new JObject { ["label"] = vertexLabel }; projectedFieldList = new List <string>(GraphViewReservedProperties.ReservedNodeProperties); foreach (WPropertyExpression vertexProperty in vertexProperties) { Debug.Assert(vertexProperty.Cardinality == GremlinKeyword.PropertyCardinality.list); if (!projectedFieldList.Contains(vertexProperty.Key.Value)) { projectedFieldList.Add(vertexProperty.Key.Value); } if (vertexProperty.Value.ToJValue() == null) { continue; } JObject meta = new JObject(); foreach (KeyValuePair <WValueExpression, WValueExpression> pair in vertexProperty.MetaProperties) { WValueExpression metaName = pair.Key; WValueExpression metaValue = pair.Value; meta[metaName.Value] = metaValue.ToJValue(); } string name = vertexProperty.Key.Value; JArray propArray = (JArray)vertexObject[name]; if (propArray == null) { propArray = new JArray(); vertexObject[name] = propArray; } propArray.Add(new JObject { ["_value"] = vertexProperty.Value.ToJValue(), ["_propId"] = GraphViewConnection.GenerateDocumentId(), ["_meta"] = meta, }); //GraphViewJsonCommand.AppendVertexSinglePropertyToVertex(vertexObject); } vertexObject["_edge"] = new JArray(); vertexObject["_reverse_edge"] = new JArray(); vertexObject["_nextEdgeOffset"] = 0; return(vertexObject); }
public JObject ConstructNodeJsonDocument(string vertexLabel, List <WPropertyExpression> vertexProperties) { Debug.Assert(vertexLabel != null); JObject vertexObject = new JObject { [KW_VERTEX_LABEL] = vertexLabel }; //projectedFieldList = new List<string>(GraphViewReservedProperties.InitialPopulateNodeProperties); //projectedFieldList.Add(GremlinKeyword.Label); foreach (WPropertyExpression vertexProperty in vertexProperties) { Debug.Assert(vertexProperty.Cardinality == GremlinKeyword.PropertyCardinality.List); //if (!projectedFieldList.Contains(vertexProperty.Key.Value)) // projectedFieldList.Add(vertexProperty.Key.Value); //if (vertexProperty.Value.ToJValue() == null) { // continue; //} JObject meta = new JObject(); foreach (KeyValuePair <WValueExpression, WValueExpression> pair in vertexProperty.MetaProperties) { WValueExpression metaName = pair.Key; WValueExpression metaValue = pair.Value; meta[metaName.Value] = metaValue.ToJValue(); } string name = vertexProperty.Key.Value; JArray propArray = (JArray)vertexObject[name]; if (propArray == null) { propArray = new JArray(); vertexObject[name] = propArray; } propArray.Add(new JObject { [KW_PROPERTY_VALUE] = vertexProperty.Value.ToJValue(), [KW_PROPERTY_ID] = GraphViewConnection.GenerateDocumentId(), [KW_PROPERTY_META] = meta, }); //GraphViewJsonCommand.AppendVertexSinglePropertyToVertex(vertexObject); } vertexObject[KW_VERTEX_EDGE] = new JArray(); vertexObject[KW_VERTEX_REV_EDGE] = new JArray(); vertexObject[KW_VERTEX_EDGE_SPILLED] = false; vertexObject[KW_VERTEX_REVEDGE_SPILLED] = false; //vertexObject[KW_VERTEX_NEXTOFFSET] = 0; return(vertexObject); }