public void SaveOrUpdate(PageDto item) { if (item == null) { throw new DexterPageNotFoundException(); } CancelEventArgsWithOneParameterWithoutResult<PageDto> e = new CancelEventArgsWithOneParameterWithoutResult<PageDto>(item); this.PageSaving.Raise(this, e); if (e.Cancel) { return; } if (item.Id > 0) { var post = this.pageDataService.GetPageByKey(item.Id); if (post == null) { throw new DexterPostNotFoundException(item.Id); } if (!this.userContext.IsInRole(Constants.AdministratorRole) && post.Author != this.userContext.Username) { throw new DexterSecurityException(string.Format("Only the Administrator or the Author can edit the post (item Key '{0}').", post.Id)); } } this.pageDataService.SaveOrUpdate(item); this.PageSaved.Raise(this, new CancelEventArgsWithoutParameterWithResult<PageDto>(item)); }
private Page GetMetaweblogPage(PageDto p, IEnumerable<WpAuthor> authors) { string authorId = this.GetAuthorId(p, authors); return new Page { dateCreated = p.CreatedAt.DateTime.ToUniversalTime(), user_id = authorId, page_id = p.Id, page_status = p.Status.ToString(), description = p.Content, title = p.Title, link = this.urlBuilder.Page.Permalink(p), permalink = this.urlBuilder.Page.Permalink(p), categories = null, excerpt = p.Excerpt, text_more = string.Empty, mt_allow_comments = p.AllowComments ? 1 : 2, mt_allow_pings = 0, wp_slug = p.Slug, wp_password = string.Empty, wp_author = p.Author, //wp_page_parent_id = p.Parent != null // ? p.Parent.Id.ToString() // : string.Empty, //wp_page_parent_title = p.Parent != null // ? p.Parent.Title // : string.Empty, //wp_page_order = p.SortOrder.ToString(), wp_author_id = authorId, wp_author_display_name = p.Author, date_created_gmt = p.PublishAt.DateTime.ToUniversalTime(), wp_page_template = string.Empty }; }
public void SaveOrUpdate(PageDto item) { if (item == null) { throw new ArgumentNullException("item", "The post must be contains a valid instance"); } Page page = this.Session.Load<Page>(item.Id) ?? new Page { CreatedAt = DateTimeOffset.Now }; if (string.IsNullOrEmpty(item.Author)) { item.Author = Thread.CurrentPrincipal.Identity.Name; } item.MapPropertiesToInstance(page); if (string.IsNullOrEmpty(page.Excerpt)) { page.Excerpt = AbstractHelper.GenerateAbstract(page.Content); } if (string.IsNullOrEmpty(page.Slug)) { page.Slug = SlugHelper.GenerateSlug(page.Title, page.Id, this.GetPostBySlugInternal); } if (page.IsTransient) { ItemComments comments = new ItemComments { Item = new ItemReference { Id = page.Id, Status = page.Status, ItemPublishedAt = page.PublishAt } }; this.Session.Store(comments); page.CommentsId = comments.Id; ItemTrackbacks trackbacks = new ItemTrackbacks { Item = new ItemReference { Id = page.Id, Status = page.Status, ItemPublishedAt = page.PublishAt } }; this.Session.Store(trackbacks); page.TrackbacksId = trackbacks.Id; } this.Session.Store(page); UpdateDenormalizedItemIndex.UpdateIndexes(this.store, this.Session, page); item.Id = RavenIdHelper.Resolve(page.Id); }