string IMetaWeblog.AddPost(string blogid, string username, string password, Post post, bool publish) { var user = ValidateUser(username, password); var comments = new PostComments(); session.Store(comments); var publishDate = post.dateCreated == null ? postScheduleringStrategy.Schedule() : postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); var newPost = new Models.Post { AuthorId = user.Id, Body = post.description, CommentsId = comments.Id, CreatedAt = DateTimeOffset.Now, SkipAutoReschedule = post.dateCreated != null, PublishAt = publishDate, Tags = post.categories, Title = post.title, CommentsCount = 0, }; session.Store(newPost); session.SaveChanges(); return newPost.Id; }
string IMetaWeblog.AddPost(string blogid, string username, string password, Post post, bool publish) { var user = ValidateUser(username, password); var comments = new PostComments(); session.Store(comments); var publishDate = post.dateCreated == null ? postScheduleringStrategy.Schedule() : postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); var newPost = new Models.Post { AuthorId = user.Id, Body = post.description, CommentsId = comments.Id, CreatedAt = DateTimeOffset.Now, SkipAutoReschedule = post.dateCreated != null, PublishAt = publishDate, Tags = post.categories, Title = post.title, CommentsCount = 0, }; session.Store(newPost); session.SaveChanges(); return(newPost.Id); }
bool IMetaWeblog.UpdatePost(string postid, string username, string password, Post post, bool publish) { var user = ValidateUser(username, password); var postToEdit = session.Load <Models.Post>(postid); if (postToEdit == null) { throw new XmlRpcFaultException(0, "Post does not exists"); } if (string.IsNullOrEmpty(postToEdit.AuthorId)) { postToEdit.AuthorId = user.Id; } else { postToEdit.LastEditedByUserId = user.Id; postToEdit.LastEditedAt = DateTimeOffset.Now; } postToEdit.Body = post.description; if ( // don't bother moving things if we are already talking about something that is fixed postToEdit.SkipAutoReschedule && // if we haven't modified it, or if we modified to the same value, we can ignore this post.dateCreated != null && post.dateCreated.Value != postToEdit.PublishAt.DateTime ) { // schedule all the future posts up postToEdit.PublishAt = postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); } postToEdit.Tags = post.categories; postToEdit.Title = post.title; { // schedule all the future posts up postToEdit.PublishAt = postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); } postToEdit.Tags = post.categories; postToEdit.Title = post.title; session.SaveChanges(); return(true); }
string IMetaWeblog.AddPost(string blogid, string username, string password, Post post, bool publish) { Models.Post newPost; using (var session = MvcApplication.DocumentStore.OpenSession()) { var user = ValidateUser(username, password); var comments = new PostComments { Comments = new List<PostComments.Comment>(), Spam = new List<PostComments.Comment>() }; session.Store(comments); var postScheduleringStrategy = new PostSchedulingStrategy(session, DateTimeOffset.Now); var publishDate = post.dateCreated == null ? postScheduleringStrategy.Schedule() : postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); newPost = new Models.Post { AuthorId = user.Id, Body = post.description, CommentsId = comments.Id, CreatedAt = DateTimeOffset.Now, SkipAutoReschedule = post.dateCreated != null, PublishAt = publishDate, Tags = post.categories, Title = post.title, CommentsCount = 0, AllowComments = true, }; session.Store(newPost); comments.Post = new PostComments.PostReference { Id = newPost.Id, PublishAt = publishDate }; session.SaveChanges(); } return newPost.Id; }
string IMetaWeblog.AddPost(string blogid, string username, string password, Post post, bool publish) { Models.Post newPost; using (var session = MvcApplication.DocumentStore.OpenSession()) { var user = ValidateUser(username, password); var comments = new PostComments { Comments = new List <PostComments.Comment>(), Spam = new List <PostComments.Comment>() }; session.Store(comments); var postScheduleringStrategy = new PostSchedulingStrategy(session, DateTimeOffset.Now); var publishDate = post.dateCreated == null ? postScheduleringStrategy.Schedule() : postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); newPost = new Models.Post { AuthorId = user.Id, Body = post.description, CommentsId = comments.Id, CreatedAt = DateTimeOffset.Now, SkipAutoReschedule = post.dateCreated != null, PublishAt = publishDate, Tags = post.categories, Title = post.title, CommentsCount = 0, AllowComments = true, }; session.Store(newPost); comments.Post = new PostComments.PostReference { Id = newPost.Id, PublishAt = publishDate }; session.SaveChanges(); } return(newPost.Id); }
bool IMetaWeblog.UpdatePost(string postid, string username, string password, Post post, bool publish) { using (var session = MvcApplication.DocumentStore.OpenSession()) { var user = ValidateUser(username, password); var postToEdit = session .Include<Models.Post>(x => x.CommentsId) .Load(postid); if (postToEdit == null) throw new XmlRpcFaultException(0, "Post does not exists"); if (string.IsNullOrEmpty(postToEdit.AuthorId)) postToEdit.AuthorId = user.Id; else { postToEdit.LastEditedByUserId = user.Id; postToEdit.LastEditedAt = DateTimeOffset.Now; } postToEdit.Body = post.description; if ( // don't bother moving things if we are already talking about something that is fixed postToEdit.SkipAutoReschedule && // if we haven't modified it, or if we modified to the same value, we can ignore this post.dateCreated != null && post.dateCreated.Value != postToEdit.PublishAt.DateTime ) { // schedule all the future posts up var postScheduleringStrategy = new PostSchedulingStrategy(session, DateTimeOffset.Now); postToEdit.PublishAt = postScheduleringStrategy.Schedule(new DateTimeOffset(post.dateCreated.Value)); session.Load<PostComments>(postToEdit.CommentsId).Post.PublishAt = postToEdit.PublishAt; } postToEdit.Tags = post.categories; postToEdit.Title = post.title; session.SaveChanges(); } return true; }