public string NewPost(string title, string description, IList <string> categories, bool publish, DateTime?date_created) { XmlRPC.Array cats = null; if (categories == null) { cats = new XmlRPC.Array(0); } else { cats = new XmlRPC.Array(categories.Count); var ss = new List <Value>(); categories.Select(c => new StringValue(c)).ToList().ForEach(i => ss.Add(i)); cats.AddRange(ss); } var service = new Service(this.BlogConnectionInfo.MetaWeblogURL); var struct_ = new Struct(); struct_["title"] = new StringValue(title); struct_["description"] = new StringValue(description); struct_["categories"] = cats; if (date_created.HasValue) { struct_["dateCreated"] = new DateTimeValue(date_created.Value); struct_["date_created_gmt"] = new DateTimeValue(date_created.Value.ToUniversalTime()); } var method = new MethodCall("metaWeblog.newPost"); method.Parameters.Add(this.BlogConnectionInfo.BlogID); method.Parameters.Add(this.BlogConnectionInfo.Username); method.Parameters.Add(this.BlogConnectionInfo.Password); method.Parameters.Add(struct_); method.Parameters.Add(publish); service.Cookies = this.BlogConnectionInfo.Cookies; var response = service.Execute(method); var param = response.Parameters[0]; var postid = ((StringValue)param).String; return(postid); }
public bool EditPost(string postid, string title, string description, IList <string> categories, bool publish) { // Create an array to hold any categories var categories_ = new XmlRPC.Array(categories == null ? 0 : categories.Count); if (categories != null) { var sorted = categories.Distinct().ToList(); sorted.Sort(); var ss = new List <Value>(); sorted.Select(c => new StringValue(c)).ToList().ForEach(i => ss.Add(i)); categories_.AddRange(ss); } var service = new Service(this.BlogConnectionInfo.MetaWeblogURL); var struct_ = new Struct(); struct_["title"] = new StringValue(title); struct_["description"] = new StringValue(description); struct_["categories"] = categories_; var method = new MethodCall("metaWeblog.editPost"); method.Parameters.Add(postid); method.Parameters.Add(this.BlogConnectionInfo.Username); method.Parameters.Add(this.BlogConnectionInfo.Password); method.Parameters.Add(struct_); method.Parameters.Add(publish); service.Cookies = this.BlogConnectionInfo.Cookies; var response = service.Execute(method); var param = response.Parameters[0]; var success = (BooleanValue)param; return(success.Boolean); }