Ejemplo n.º 1
0
        internal static Base64Data XmlToValue(SXL.XElement type_el)
        {
            var bytes = Convert.FromBase64String(type_el.Value);
            var b     = new Base64Data(bytes);

            return(b);
        }
Ejemplo n.º 2
0
        public static XmlRpc.Value ParseXml(System.Xml.Linq.XElement value_el)
        {
            if (value_el.Name != "value")
            {
                string msg = string.Format("XML Element should have name \"value\" instead found \"{0}\"", value_el.Name);
                throw new XmlRpcException();
            }

            var input_value = value_el.Value;

            if (value_el.HasElements)
            {
                var type_el = value_el.Elements().First();

                string typename = type_el.Name.ToString();
                if (typename == Array.TypeString)
                {
                    return(Array.XmlToValue(type_el));
                }
                else if (typename == Struct.TypeString)
                {
                    return(Struct.XmlToValue(type_el));
                }
                else if (typename == StringValue.TypeString)
                {
                    return(StringValue.XmlToValue(type_el));
                }
                else if (typename == DoubleValue.TypeString)
                {
                    return(DoubleValue.XmlToValue(type_el));
                }
                else if (typename == Base64Data.TypeString)
                {
                    return(Base64Data.XmlToValue(type_el));
                }
                else if (typename == DateTimeValue.TypeString)
                {
                    return(DateTimeValue.XmlToValue(type_el));
                }
                else if (typename == IntegerValue.TypeString || typename == IntegerValue.AlternateTypeString)
                {
                    return(IntegerValue.XmlToValue(type_el));
                }
                else if (typename == BooleanValue.TypeString)
                {
                    return(BooleanValue.XmlToValue(type_el));
                }
                else
                {
                    string msg = string.Format("Unsupported type: {0}", typename);
                    throw new XmlRpcException(msg);
                }
            }
            else
            {
                // no <type> element provided. Treat the content as a string
                return(new StringValue(input_value));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="name"></param>
        /// <param name="type"></param>
        /// <param name="bits"></param>
        /// <returns></returns>
        public async Task<MediaObjectInfo> NewMediaObject(string name, string type, byte[] bits)
        {
            var service = new Service(BlogConnectionInfo.MetaWeblogUrl);

            var inputStruct = new Struct();
            inputStruct["name"] = new StringValue(name);
            inputStruct["type"] = new StringValue(type);
            inputStruct["bits"] = new Base64Data(bits);

            var method = new MethodCall("metaWeblog.newMediaObject");
            method.Parameters.Add(BlogConnectionInfo.BlogId);
            method.Parameters.Add(BlogConnectionInfo.Username);
            method.Parameters.Add(BlogConnectionInfo.Password);
            method.Parameters.Add(inputStruct);

            var response = await service.Execute(method);
            var param = response.Parameters[0];
            var _struct = (Struct)param;

            var mediaobject = new MediaObjectInfo { Url = _struct.Get("url", StringValue.NullString).String };

            return mediaobject;
        }
Ejemplo n.º 4
0
 public void Add(Base64Data value)
 {
     this.Parameters.Add(value);
 }
Ejemplo n.º 5
0
 internal static Base64Data XmlToValue(SXL.XElement type_el)
 {
     var bytes = Convert.FromBase64String(type_el.Value);
     var b = new Base64Data(bytes);
     return b;
 }