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()); }
private Oxite.Model.User getUser(string username, string password) { if (username == null || password == null) { throw new ArgumentException("Invalid login"); } Oxite.Model.User user = userService.GetUser(username, password); if (user == null) { throw new InvalidCredentialException(); } return(user); }