protected EgoiType walkMap(Dictionary <string, object> map) { EgoiType r = null; if (map.ContainsKey("key_0")) { EgoiMapList mrl = new EgoiMapList(); List <String> keys = map.Keys.ToList <string>(); keys.Sort(); foreach (String k in keys) { if (!k.StartsWith("key_")) { continue; } if (map [k] is Dictionary <string, object> ) { mrl.Add(walkValues(new EgoiMap(map [k] as Dictionary <string, object>))); } else { EgoiMap value = new EgoiMap(); value.Add("value", map [k]); mrl.Add(value); } } r = mrl; } else { r = walkValues(new EgoiMap(map)); } return(r); }
public EgoiMapList decodeMapListResult(String method, EgoiMap arguments) { Dictionary <string, object> result = processResult(method, arguments); EgoiType et = walkMap(result); if (et is EgoiMap) { EgoiMapList eml = new EgoiMapList(); eml.Add(et as EgoiMap); et = eml; } return(et as EgoiMapList); }