public ListKeyValueNode GetKeyValueNodes(Dictionary <string, object> dictionary, int index) { List <INode> values = new List <INode>(); foreach (var keyValuePair in dictionary) { if (keyValuePair.Value is ArrayList) { var keyArrayNodeParser = new KeyArrayNodeParser(); var arrayNode = keyArrayNodeParser.GetArrayListNode(keyValuePair.Key, keyValuePair.Value as ArrayList); values.Add(arrayNode); } else { var keyValueNodeParser = new KeyValueNodeParser(); var keyValueNode = keyValueNodeParser.GetKeyValueNode(keyValuePair); values.Add(keyValueNode); } } ListKeyValueNode listKeyvalueNode = new ListKeyValueNode(); listKeyvalueNode.Index = index; listKeyvalueNode.Values = values; return(listKeyvalueNode); }
public Dictionary <string, object> GetDictionary(ListKeyValueNode listKeyValueNode) { List <KeyValuePair <string, object> > values = new List <KeyValuePair <string, object> >(); foreach (var node in listKeyValueNode.Values) { if (node is KeyArrayNode) { var keyArrayNodeParser = new KeyArrayNodeParser(); var keyValuePair = keyArrayNodeParser.GetKeyArrayListPair(node as KeyArrayNode); values.Add(new KeyValuePair <string, object>(keyValuePair.Key, keyValuePair.Value)); } else { var keyValueNodeParser = new KeyValueNodeParser(); var keyValuePair = keyValueNodeParser.GetKeyValuePair(node as KeyValueNode); values.Add(keyValuePair); } } Dictionary <string, object> dictionary = new Dictionary <string, object>(); foreach (var value in values) { dictionary.Add(value.Key, value.Value); } return(dictionary); }
public void LoadListKeyValueNode(ListKeyValueNode node, NewNode currentNode, int counter) { var key = node.Index; if (currentNode == null) { currentNode = new NewNode(); FlattenedNodes.Add(currentNode); } currentNode.AddKeyNode(node, "[" + key + "]"); foreach (var nodeValue in node.Values) { if (currentNode.HasValueNode) { var nodes = currentNode.GetNodes(); var currentNode2 = new NewNode(); foreach (var n in nodes.Take(counter)) { currentNode2.AddKeyNode(n.Key, n.Value); } currentNode2.AddKeyNode(node, "[" + key + "]"); FlattenedNodes.Add(currentNode2); currentNode = currentNode2; } if (nodeValue is ArrayNode) { var arrayNode = nodeValue as ArrayNode; LoadArrayNode(arrayNode, currentNode, counter + 1); } else if (nodeValue is KeyArrayNode) { var keyArrayNode = nodeValue as KeyArrayNode; LoadKeyArrayNode(keyArrayNode, currentNode, counter + 1); } else if (nodeValue is KeyValueNode) { var keyValueNode = nodeValue as KeyValueNode; LoadKeyValueNode(keyValueNode, currentNode, counter + 1); } else if (nodeValue is ListKeyValueNode) { var listKeyValueNode = nodeValue as ListKeyValueNode; LoadListKeyValueNode(listKeyValueNode, currentNode, counter + 1); } else if (nodeValue is ValueNode) { var valueNode = nodeValue as ValueNode; LoadValueNode(valueNode, currentNode); } else if (nodeValue == null) { var valueNode = new ValueNode(); valueNode.Value = ""; currentNode.SetValueNode(valueNode); } } }
public ListKeyValueNodeTreeViewModel(ListKeyValueNode listKeyValueNode) : base(null, true) { _ListKeyValueNode = listKeyValueNode; this.IsExpanded = true; }