internal override DataNode ToDataNode() { var branch = new DataBranch(); foreach (var item in Childs) { branch[item.Key] = item.Value.ToDataNode(); } return(branch); }
private void GetDetailSuc(DataBranch DBh) { try { NameSuc.Text = DBh.Name.ToString(); PhoneSuc.Text = DBh.Phone_No.ToString(); EmailSuc.Text = DBh.E_Mail.ToString(); AdressSuc.Text = (DBh.Address.ToString() + " " + DBh.Address_2.ToString()); StateSuc.Text = DBh.County.ToString(); CitySuc.Text = DBh.City.ToString(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
internal void parse(string data) { if (evt == null) { string[] parts = data.Split(':'); if (parts.Length != 2 || parts[0] != "event") { //garbage return; } else { evt = parts[1].Trim(); if (evt == "keep-alive") { evt = null; } return; } } else { //here i'll need to parse the data, i'm going to get a new textstream for it. //this might be an oportunity for improvement. if (!data.StartsWith("data:")) { evt = null; return;//garbage } //todo, some events do not have any data. data = data.Substring(5); var result = DataNode.FromJsonString(data); switch (evt) { case "put": //data if (result["data"] == null) { if (result["path"].As <string>() != "/") { //delete i think. dataRemoved(result["path"].ToString().Substring(1), null); } return; } if (result["data"].IsLeaf) { //i need to check it by the path. if (result["path"].As <string>() != "/") { var dict = new Dictionary <string, DataNode>(); dict[result["path"].As <string>()] = result["data"]; var rootBranch = new DataBranch(dict); var key = rootBranch.Keys.First(); dataChanged(key, rootBranch[key]); } else { dataAdded(result["path"].ToString().Substring(1), result["data"]); } return; } var dataBranch = (DataBranch)result["data"]; foreach (var item in dataBranch.Keys) { loadedObjects.Add(item); dataAdded(item, dataBranch[item]); } break; case "patch": DataBranch dataNode = (DataBranch)result["data"]; foreach (var item in dataNode) { if (loadedObjects.Contains(item.Key)) { if (item.Value == null) { dataRemoved(item.Key, item.Value); } else { dataChanged(item.Key, item.Value); } } else { loadedObjects.Add(item.Key); dataAdded(item.Key, item.Value); } } break; default: break; } } }