Esempio n. 1
0
        /// <summary>
        /// parse the response
        /// </summary>
        /// <returns></returns>
        public static Parameters ParseParams(XmppXElement el)
        {
            var al = new Parameters();

            // If an error occurred, the server will return fault
            var fault = el.Element <Fault>();

            if (fault != null)
            {
                var structParameter = ParseStruct(fault.Element <Struct>(true));
                al.Add(new XmlRpcException((Int16)structParameter["faultCode"], (string)structParameter["faultString"]));
            }
            else
            {
                XmppXElement elParams = el.Element <Params>();
                var          nl       = elParams.Elements <Param>();

                foreach (var p in nl)
                {
                    var value = p.Element <Value>();
                    if (value != null)
                    {
                        al.Add(ParseValue(value));
                    }
                }
            }
            return(al);
        }
Esempio n. 2
0
        /// <summary>
        /// parse a response array
        /// </summary>
        /// <param name="elArray">The el array.</param>
        /// <returns></returns>
        private static Parameters ParseArray(XmppXElement elArray)
        {
            #region Xml sample
            //<array>
            //    <data>
            //        <value><string>one</string></value>
            //        <value><string>two</string></value>
            //        <value><string>three</string></value>
            //        <value><string>four</string></value>
            //        <value><string>five</string></value>
            //    </data>
            //</array>
            #endregion

            var data = elArray.Element <Data>();
            if (data != null)
            {
                var list   = new Parameters();
                var values = data.Elements <Value>();

                foreach (var el in values)
                {
                    list.Add(ParseValue(el));
                }

                return(list);
            }
            return(null);
        }