private static IEnumerable <string> ProcessBINStructure(BINStructure structure) { List <string> strings = new List <string>(); foreach (BINValue value in structure.Values) { strings.AddRange(ProcessBINValue(value)); } return(strings); }
private static List <TreeViewItem> ProcessStructure(BINValue value) { BINStructure structure = value.Value as BINStructure; List <TreeViewItem> nodes = new List <TreeViewItem>(); foreach (BINValue structureValue in structure.Values) { nodes.Add(GenerateValueNode(structureValue)); } return(nodes); }
private static object SerializeStructure(BINValue value) { BINStructure structure = value.Value as BINStructure; if (_classMap.ContainsKey(structure.Property)) { return(Serialize(structure.Values, _classMap[structure.Property])); } else { return(null); } }
private static List <TreeViewItem> ProcessMap(BINValue value) { BINMap map = value.Value as BINMap; List <TreeViewItem> nodes = new List <TreeViewItem>(); foreach (KeyValuePair <BINValue, BINValue> pair in map.Values) { TreeViewItem node = new TreeViewItem() { Header = ProcessKeyValue(pair.Key) }; if (map.ValueType != BINValueType.Structure && map.ValueType != BINValueType.Embedded) { node.Header += " => " + (ProcessPrimitiveValue(pair.Value, false).Children[0] as TextBlock).Text; } else { BINStructure structure = pair.Value.Value as BINStructure; node.Header += " : " + BINGlobal.GetClass(structure.Property); foreach (TreeViewItem structureNode in ProcessStructure(pair.Value)) { node.Items.Add(structureNode); } } nodes.Add(node); } return(nodes); string ProcessKeyValue(BINValue keyValue) { if (map.KeyType == BINValueType.Byte) { return(((byte)keyValue.Value).ToString()); } else if (map.KeyType == BINValueType.UInt16) { return(((ushort)keyValue.Value).ToString()); } else if (map.KeyType == BINValueType.UInt32) { return(((uint)keyValue.Value).ToString()); } else if (map.KeyType == BINValueType.UInt64) { return(((ulong)keyValue.Value).ToString()); } else if (map.KeyType == BINValueType.String) { return((string)keyValue.Value); } else if (map.KeyType == BINValueType.StringHash) { return(((uint)keyValue.Value).ToString()); } else { return(""); } } }