public void Synch_Crud_Examples() { using (var api = ApiFactory.Create()) { // Tags: var tag = api.Root.Tag.Get(new GetTagRequest()); api.Root.Tags.Post(tag.ToPostRequest()); api.Root.Tag.Put(tag.ToPutRequest()); api.Root.Tag.Delete(new DeleteTagRequest()); // Categories: var category = api.Root.Category.Get(new GetCategoryRequest()); api.Root.Categories.Post(category.ToPostRequest()); api.Root.Category.Put(category.ToPutRequest()); api.Root.Category.Delete(new DeleteCategoryRequest()); // Layouts: var getLayoutRequest = new GetLayoutRequest(); getLayoutRequest.Data.IncludeOptions = true; getLayoutRequest.Data.IncludeRegions = true; var layout = api.Root.Layout.Get(getLayoutRequest); api.Root.Layouts.Post(layout.ToPostRequest()); api.Root.Layout.Put(layout.ToPutRequest()); api.Root.Layout.Delete(new DeleteLayoutRequest()); // Folders: var folder = api.Media.Folder.Get(new GetFolderRequest()); api.Media.Folders.Post(folder.ToPostRequest()); api.Media.Folder.Put(folder.ToPutRequest()); api.Media.Folder.Delete(new DeleteFolderRequest()); // Images: var image = api.Media.Image.Get(new GetImageRequest()); api.Media.Images.Post(image.ToPostRequest()); api.Media.Image.Put(image.ToPutRequest()); api.Media.Image.Delete(new DeleteImageRequest()); // Files: var file = api.Media.File.Get(new GetFileRequest()); api.Media.Files.Post(file.ToPostRequest()); api.Media.File.Put(file.ToPutRequest()); api.Media.File.Delete(new DeleteFileRequest()); // Languages: var language = api.Root.Language.Get(new GetLanguageRequest()); api.Root.Languages.Post(language.ToPostRequest()); api.Root.Language.Put(language.ToPutRequest()); api.Root.Language.Delete(new DeleteLanguageRequest()); // Redirects: var redirect = api.Pages.Redirect.Get(new GetRedirectRequest()); api.Pages.Redirects.Post(redirect.ToPostRequest()); api.Pages.Redirect.Put(redirect.ToPutRequest()); api.Pages.Redirect.Delete(new DeleteRedirectRequest()); // Server Widget: var getSWRequest = new GetServerControlWidgetRequest(); getSWRequest.Data.IncludeOptions = true; var serverWidget = api.Pages.Widget.ServerControl.Get(getSWRequest); api.Pages.Widget.ServerControl.Post(serverWidget.ToPostRequest()); api.Pages.Widget.ServerControl.Put(serverWidget.ToPutRequest()); api.Pages.Widget.ServerControl.Delete(new DeleteServerControlWidgetRequest()); // Html Widgets: var getHWRequest = new GetHtmlContentWidgetRequest(); getHWRequest.Data.IncludeOptions = true; var htmlWidget = api.Pages.Widget.HtmlContent.Get(getHWRequest); api.Pages.Widget.HtmlContent.Post(htmlWidget.ToPostRequest()); api.Pages.Widget.HtmlContent.Put(htmlWidget.ToPutRequest()); api.Pages.Widget.HtmlContent.Delete(new DeleteHtmlContentWidgetRequest()); // Html Contents: var html = api.Pages.Content.Html.Get(new GetHtmlContentRequest()); // TODO: implement post. api.Pages.Content.Html.Put(html.ToPutRequest()); api.Pages.Content.Html.Delete(new DeleteHtmlContentRequest()); // Pages: var getPageRequest = new GetPagePropertiesRequest(); getPageRequest.Data.IncludeAccessRules = true; getPageRequest.Data.IncludePageOptions = true; getPageRequest.Data.IncludeMetaData = true; getPageRequest.Data.IncludeTags = true; var page = api.Pages.Page.Properties.Get(getPageRequest); api.Pages.Page.Properties.Post(page.ToPostRequest()); api.Pages.Page.Properties.Put(page.ToPutRequest()); api.Pages.Page.Properties.Delete(new DeletePagePropertiesRequest()); // Page Contents: var getPCrequest = new GetPageContentRequest(); getPCrequest.Data.IncludeOptions = true; // Only when options should be retrieved and saved var pageContent = api.Pages.Page.Content.Get(getPCrequest); api.Pages.Page.Content.Put(pageContent.ToPutRequest()); api.Pages.Page.Content.Delete(new DeletePageContentRequest()); // Blog Post: var getBlogRequest = new GetBlogPostPropertiesRequest(); getBlogRequest.Data.IncludeHtmlContent = true; getBlogRequest.Data.IncludeAccessRules = true; getBlogRequest.Data.IncludeMetaData = true; getBlogRequest.Data.IncludeTags = true; var blog = api.Blog.BlogPost.Properties.Get(getBlogRequest); api.Blog.BlogPost.Properties.Post(blog.ToPostRequest()); api.Blog.BlogPost.Properties.Put(blog.ToPutRequest()); api.Blog.BlogPost.Properties.Delete(new DeleteBlogPostPropertiesRequest()); var author = api.Blog.Author.Get(new GetAuthorRequest()); api.Blog.Authors.Post(author.ToPostRequest()); api.Blog.Author.Put(author.ToPutRequest()); api.Blog.Author.Delete(new DeleteAuthorRequest()); var settings = api.Blog.Settings.Get(new GetBlogPostsSettingsRequest()); api.Blog.Settings.Put(settings.ToPutRequest()); // Sitemap: var sitemap = api.Pages.SitemapNew.Get(new GetSitemapRequest()); api.Pages.Sitemaps.Post(sitemap.ToPostRequest()); api.Pages.SitemapNew.Put(sitemap.ToPutRequest()); api.Pages.SitemapNew.Delete(new DeleteSitemapRequest()); // Sitemap nodes: var node = api.Pages.SitemapNew.Node.Get(new GetNodeRequest()); api.Pages.SitemapNew.Nodes.Post(node.ToPostRequest()); api.Pages.SitemapNew.Node.Put(node.ToPutRequest()); api.Pages.SitemapNew.Node.Delete(new DeleteNodeRequest()); // Destroyed draft (should be called on event BetterCms.Events.PageEvents.Instance.ContentDraftDestroyed) var destroyDraftRequest = new DestroyContentDraftRequest(); // destroyDraftRequest.ContentId = contentId; api.Pages.Content.Draft.Delete(destroyDraftRequest); } }
public GetBlogPostPropertiesResponse Get(GetBlogPostPropertiesRequest request) { var response = repository .AsQueryable<Module.Blog.Models.BlogPost>(blogPost => blogPost.Id == request.BlogPostId) .Select(blogPost => new GetBlogPostPropertiesResponse { Data = new BlogPostPropertiesModel { Id = blogPost.Id, Version = blogPost.Version, CreatedBy = blogPost.CreatedByUser, CreatedOn = blogPost.CreatedOn, LastModifiedBy = blogPost.ModifiedByUser, LastModifiedOn = blogPost.ModifiedOn, BlogPostUrl = blogPost.PageUrl, Title = blogPost.Title, IntroText = blogPost.Description, IsPublished = blogPost.Status == PageStatus.Published, PublishedOn = blogPost.PublishedOn, LayoutId = blogPost.Layout != null && !blogPost.Layout.IsDeleted ? blogPost.Layout.Id : (Guid?)null, MasterPageId = blogPost.MasterPage != null && !blogPost.MasterPage.IsDeleted ? blogPost.MasterPage.Id : (Guid?)null, CategoryId = blogPost.Category != null && !blogPost.Category.IsDeleted ? blogPost.Category.Id : (Guid?)null, AuthorId = blogPost.Author != null && !blogPost.Author.IsDeleted ? blogPost.Author.Id : (Guid?)null, ActivationDate = blogPost.ActivationDate, ExpirationDate = blogPost.ExpirationDate, MainImageId = blogPost.Image != null && !blogPost.Image.IsDeleted ? blogPost.Image.Id : (Guid?)null, FeaturedImageId = blogPost.FeaturedImage != null && !blogPost.FeaturedImage.IsDeleted ? blogPost.FeaturedImage.Id : (Guid?)null, SecondaryImageId = blogPost.SecondaryImage != null && !blogPost.SecondaryImage.IsDeleted ? blogPost.SecondaryImage.Id : (Guid?)null, UseCanonicalUrl = blogPost.UseCanonicalUrl, UseNoFollow = blogPost.UseNoFollow, UseNoIndex = blogPost.UseNoIndex, IsArchived = blogPost.IsArchived }, MetaData = request.Data.IncludeMetaData ? new MetadataModel { MetaTitle = blogPost.MetaTitle, MetaDescription = blogPost.MetaDescription, MetaKeywords = blogPost.MetaKeywords } : null, Author = blogPost.Author != null && !blogPost.Author.IsDeleted && request.Data.IncludeAuthor ? new AuthorModel { Id = blogPost.Author.Id, Version = blogPost.Author.Version, CreatedBy = blogPost.Author.CreatedByUser, CreatedOn = blogPost.Author.CreatedOn, LastModifiedBy = blogPost.Author.ModifiedByUser, LastModifiedOn = blogPost.Author.ModifiedOn, Name = blogPost.Author.Name, ImageId = blogPost.Author.Image != null && !blogPost.Author.Image.IsDeleted ? blogPost.Author.Image.Id : (Guid?)null } : null, Category = blogPost.Category != null && !blogPost.Category.IsDeleted && request.Data.IncludeCategory ? new CategoryModel { Id = blogPost.Category.Id, Version = blogPost.Category.Version, CreatedBy = blogPost.Category.CreatedByUser, CreatedOn = blogPost.Category.CreatedOn, LastModifiedBy = blogPost.Category.ModifiedByUser, LastModifiedOn = blogPost.Category.ModifiedOn, Name = blogPost.Category.Name } : null, Layout = request.Data.IncludeLayout && !blogPost.Layout.IsDeleted ? new LayoutModel { Id = blogPost.Layout.Id, Version = blogPost.Layout.Version, CreatedBy = blogPost.Layout.CreatedByUser, CreatedOn = blogPost.Layout.CreatedOn, LastModifiedBy = blogPost.Layout.ModifiedByUser, LastModifiedOn = blogPost.Layout.ModifiedOn, Name = blogPost.Layout.Name, LayoutPath = blogPost.Layout.LayoutPath, PreviewUrl = blogPost.Layout.PreviewUrl } : null, MainImage = blogPost.Image != null && !blogPost.Image.IsDeleted && request.Data.IncludeImages ? new ImageModel { Id = blogPost.Image.Id, Version = blogPost.Image.Version, CreatedBy = blogPost.Image.CreatedByUser, CreatedOn = blogPost.Image.CreatedOn, LastModifiedBy = blogPost.Image.ModifiedByUser, LastModifiedOn = blogPost.Image.ModifiedOn, Title = blogPost.Image.Title, Caption = blogPost.Image.Caption, Url = fileUrlResolver.EnsureFullPathUrl(blogPost.Image.PublicUrl), ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(blogPost.Image.PublicThumbnailUrl) } : null, FeaturedImage = blogPost.FeaturedImage != null && !blogPost.FeaturedImage.IsDeleted && request.Data.IncludeImages ? new ImageModel { Id = blogPost.FeaturedImage.Id, Version = blogPost.FeaturedImage.Version, CreatedBy = blogPost.FeaturedImage.CreatedByUser, CreatedOn = blogPost.FeaturedImage.CreatedOn, LastModifiedBy = blogPost.FeaturedImage.ModifiedByUser, LastModifiedOn = blogPost.FeaturedImage.ModifiedOn, Title = blogPost.FeaturedImage.Title, Caption = blogPost.FeaturedImage.Caption, Url = fileUrlResolver.EnsureFullPathUrl(blogPost.FeaturedImage.PublicUrl), ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(blogPost.FeaturedImage.PublicThumbnailUrl) } : null, SecondaryImage = blogPost.SecondaryImage != null && !blogPost.SecondaryImage.IsDeleted && request.Data.IncludeImages ? new ImageModel { Id = blogPost.SecondaryImage.Id, Version = blogPost.SecondaryImage.Version, CreatedBy = blogPost.SecondaryImage.CreatedByUser, CreatedOn = blogPost.SecondaryImage.CreatedOn, LastModifiedBy = blogPost.SecondaryImage.ModifiedByUser, LastModifiedOn = blogPost.SecondaryImage.ModifiedOn, Title = blogPost.SecondaryImage.Title, Caption = blogPost.SecondaryImage.Caption, Url = fileUrlResolver.EnsureFullPathUrl(blogPost.SecondaryImage.PublicUrl), ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(blogPost.SecondaryImage.PublicThumbnailUrl) } : null }) .FirstOne(); if (request.Data.IncludeHtmlContent || request.Data.IncludeTechnicalInfo) { LoadContents(request.Data.IncludeHtmlContent, request.Data.IncludeTechnicalInfo, request.BlogPostId, response); } if (request.Data.IncludeTags) { response.Tags = LoadTags(request.BlogPostId); } if (request.Data.IncludeAccessRules) { // Get layout options, page options and merge them response.AccessRules = LoadAccessRules(response.Data.Id); } return response; }