public ActionResult NewPost(string blogId, string username, string password, IDictionary <string, object> post, bool publish) { if (string.IsNullOrEmpty(blogId)) { throw new ArgumentException(); } Blog blog = blogService.GetBlog(new BlogAddress(blogId)); //TODO: (erikpo) Move into a model binder? PostInput postInput = new PostInput(blog.Name, post["title"] as string, post["description"] as string, post["mt_excerpt"] as string, (post["categories"] as object[]).OfType <string>() ?? Enumerable.Empty <string>(), string.IsNullOrEmpty(post["mt_basename"] as string) ? expressions.Slugify(post["title"] as string) : post["mt_basename"] as string, publish ? DateTime.UtcNow : (DateTime?)null, blog.CommentingDisabled); ModelResult <Post> results = postService.AddPost(postInput, EntityState.Normal); if (results.IsValid) { return(new XmlRpcResult(results.Item.ID.ToString())); } return(new XmlRpcFaultResult(0, results.GetFirstException().Message)); }
public string NewPost(string blogId, string username, string password, Post post, bool publish) { Oxite.Model.User user = getUser(username, password); Oxite.Model.Area area = areaService.GetArea(new Guid(blogId)); Oxite.Model.Post newPost = new Oxite.Model.Post { Title = post.title, Body = post.description, Created = post.dateCreated == default(DateTime) ? DateTime.Now : post.dateCreated, Slug = string.IsNullOrEmpty(post.mt_basename) ? expressions.Slugify(post.title) : post.mt_basename, BodyShort = post.mt_excerpt, Creator = user, State = Oxite.Model.EntityState.Normal }; if (publish) { newPost.Published = DateTime.Now; } if (post.categories != null) { newPost.Tags = new List <Oxite.Model.Tag>(post.categories.Select(s => new Oxite.Model.Tag() { Name = s })); } postService.AddPost(area, newPost); Oxite.Model.Post createdPost = postService.GetPost(area, newPost.Slug); return(createdPost.ID.ToString()); }