コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
            }
        }