Exemplo n.º 1
0
        internal override DataNode ToDataNode()
        {
            var branch = new DataBranch();

            foreach (var item in Childs)
            {
                branch[item.Key] = item.Value.ToDataNode();
            }

            return(branch);
        }
Exemplo n.º 2
0
 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());
     }
 }
Exemplo n.º 3
0
        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;
                }
            }
        }