Пример #1
0
        public void Update(string fullname, NameValueCollection parms)
        {
            XpcaProxy proxy = new XpcaProxy(srv[fullname]);
            foreach (string name in parms.AllKeys) {
                if (proxy.Properties.ContainsKey(name)) {
                    Type type = proxy.Properties[name].PropertyType;
                    object val = parms[name];
                    // Get node by ref
                    if (typeof(Node).IsAssignableFrom(type)) {
                        val = srv[val.ToString().Replace("xpca:/","")];
                    }
                    else {
                        try {
                            val = type.InvokeMember("Parse",
                                BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public,
                                null,
                                type,
                                new object[] {val});
                        }
                        catch {
                            val = val.ToString();
                        }
                    }

                    proxy[name] = val;
                }
            }

            proxy.ConfigChange -= NodeConfig;
            OnConfig(proxy.Node);
        }
Пример #2
0
        public override string Serialize(Node node, Type typeAttr)
        {
            XpcaProxy proxy = new XpcaProxy(node);
            StringWriter sw = new StringWriter();

            using(XmlWriter xmlWriter = new XmlTextWriter(sw))
            {
                xmlWriter.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");
                xmlWriter.WriteStartElement("root");
                foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) {

                    object value = proxy[property.Key];
                    if (value != null) {
                        xmlWriter.WriteStartElement(property.Key);
                        if(value is IEnumerable<object>) {
                            foreach (object obj in (value as IEnumerable<object>)) {
                                xmlWriter.WriteStartElement("item");
                                XmlWriteValue(xmlWriter, obj);
                                xmlWriter.WriteEndElement();
                            }

                        }
                        else {
                            XmlWriteValue(xmlWriter, value);
                        }
                        xmlWriter.WriteEndElement();
                    }
                }
                xmlWriter.WriteEndElement();
            }

            return sw.ToString();
        }
Пример #3
0
        public void SetUp()
        {
            node = new FlagsNode();

            proxy = new XpcaProxy(node);
            proxy.ConfigChange += new EventHandler<ChangeEventArgs>(OnConfig);
        }
Пример #4
0
        public override string Serialize(Node node, Type typeAttr)
        {
            XpcaProxy proxy = new XpcaProxy(node);
            StringWriter sw = new StringWriter();

            using(JsonWriter jsonWriter = new JsonTextWriter(sw))
            {
                jsonWriter.Formatting = Newtonsoft.Json.Formatting.None;
                jsonWriter.WriteStartObject();

                foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr)) {
                    object value = proxy[property.Key];

                    if (value != null) {
                        jsonWriter.WritePropertyName(property.Key);
                        if(value is IEnumerable<object>) {
                            jsonWriter.WriteStartArray();

                            foreach (object obj in (value as IEnumerable<object>)) {
                                JsonWriteValue(jsonWriter, obj);
                            }

                            jsonWriter.WriteEndArray();
                        }
                        else {
                            JsonWriteValue(jsonWriter, value);
                        }
                    }
                }
                jsonWriter.WriteEndObject();
            }

            return sw.ToString();
        }
Пример #5
0
        private void OnConfig(object sender, ChangeEventArgs e)
        {
            XpcaProxy proxy = sender as XpcaProxy;
            FlagsNode node  = proxy.Node as FlagsNode;

            node.isConfiged = true;
        }
Пример #6
0
        public void SetUp()
        {
            node = new FlagsNode();

            proxy = new XpcaProxy(node);
            proxy.ConfigChange += new EventHandler <ChangeEventArgs>(OnConfig);
        }
Пример #7
0
 protected void UpdateNode(Node node, Dictionary<string, object> properties)
 {
     proxy = new XpcaProxy(node);
     //Set properties
     foreach (KeyValuePair<string, object> property in properties) {
         object value = property.Value;
         if (value.ToString().IndexOf("xpca:/") > -1) {
             value = proxy.Node.Root[value.ToString().Replace("xpca:/", "")];
         }
         proxy[property.Key] = value;
     }
 }
Пример #8
0
 protected void UpdateNode(Node node, Dictionary <string, object> properties)
 {
     proxy = new XpcaProxy(node);
     //Set properties
     foreach (KeyValuePair <string, object> property in properties)
     {
         object value = property.Value;
         if (value.ToString().IndexOf("xpca:/") > -1)
         {
             value = proxy.Node.Root[value.ToString().Replace("xpca:/", "")];
         }
         proxy[property.Key] = value;
     }
 }
Пример #9
0
        public override string Serialize(Node node, Type typeAttr)
        {
            XpcaProxy    proxy = new XpcaProxy(node);
            StringWriter sw    = new StringWriter();

            using (JsonWriter jsonWriter = new JsonTextWriter(sw))
            {
                jsonWriter.Formatting = Newtonsoft.Json.Formatting.None;
                jsonWriter.WriteStartObject();

                foreach (KeyValuePair <string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr))
                {
                    object value = proxy[property.Key];

                    if (value != null)
                    {
                        jsonWriter.WritePropertyName(property.Key);
                        if (value is IEnumerable <object> )
                        {
                            jsonWriter.WriteStartArray();

                            foreach (object obj in (value as IEnumerable <object>))
                            {
                                JsonWriteValue(jsonWriter, obj);
                            }

                            jsonWriter.WriteEndArray();
                        }
                        else
                        {
                            JsonWriteValue(jsonWriter, value);
                        }
                    }
                }
                jsonWriter.WriteEndObject();
            }

            return(sw.ToString());
        }
Пример #10
0
        public void Update(string fullname, NameValueCollection parms)
        {
            XpcaProxy proxy = new XpcaProxy(srv[fullname]);

            foreach (string name in parms.AllKeys)
            {
                if (proxy.Properties.ContainsKey(name))
                {
                    Type   type = proxy.Properties[name].PropertyType;
                    object val  = parms[name];
                    // Get node by ref
                    if (typeof(Node).IsAssignableFrom(type))
                    {
                        val = srv[val.ToString().Replace("xpca:/", "")];
                    }
                    else
                    {
                        try {
                            val = type.InvokeMember("Parse",
                                                    BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public,
                                                    null,
                                                    type,
                                                    new object[] { val });
                        }
                        catch {
                            val = val.ToString();
                        }
                    }

                    proxy[name] = val;
                }
            }

            proxy.ConfigChange -= NodeConfig;
            OnConfig(proxy.Node);
        }
Пример #11
0
        public override string Serialize(Node node, Type typeAttr)
        {
            XpcaProxy    proxy = new XpcaProxy(node);
            StringWriter sw    = new StringWriter();

            using (XmlWriter xmlWriter = new XmlTextWriter(sw))
            {
                xmlWriter.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\"");
                xmlWriter.WriteStartElement("root");
                foreach (KeyValuePair <string, PropertyInfo> property in proxy.GetPropertiesFor(typeAttr))
                {
                    object value = proxy[property.Key];
                    if (value != null)
                    {
                        xmlWriter.WriteStartElement(property.Key);
                        if (value is IEnumerable <object> )
                        {
                            foreach (object obj in (value as IEnumerable <object>))
                            {
                                xmlWriter.WriteStartElement("item");
                                XmlWriteValue(xmlWriter, obj);
                                xmlWriter.WriteEndElement();
                            }
                        }
                        else
                        {
                            XmlWriteValue(xmlWriter, value);
                        }
                        xmlWriter.WriteEndElement();
                    }
                }
                xmlWriter.WriteEndElement();
            }

            return(sw.ToString());
        }
Пример #12
0
        private void Save(Node node, JsonTextWriter jsonWriter)
        {
            jsonWriter.Formatting = Formatting.Indented;
            jsonWriter.WritePropertyName(node.FullName);
            jsonWriter.WriteStartObject();
            XpcaProxy proxy = new XpcaProxy(node);

            foreach (KeyValuePair<string, PropertyInfo> property in proxy.GetPropertiesFor(typeof(ConfigAttribute))) {

                object value = proxy[property.Key];

                if (value != null ) {
                    jsonWriter.WritePropertyName(property.Key);
                    if(value is Node) {
                        jsonWriter.WriteValue("xpca:/" + ((Node)value).FullName);
                    }
                    else {
                        jsonWriter.WriteValue(value.ToString());
                    }
                }
            }

            jsonWriter.WriteEndObject();

            foreach(Node ch in node.Children) {
                Save(ch, jsonWriter);
            }
        }