/// <summary>
        /// Gets the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns><c>GetPageContentResponse</c> with a page content.</returns>
        public GetPageContentResponse Get(GetPageContentRequest request)
        {
            var model =
                repository.AsQueryable<PageContent>(content => content.Id == request.PageContentId && content.Page.Id == request.PageId)
                    .Select(
                        pageContent =>
                        new PageContentModel
                            {
                                Id = pageContent.Id,
                                Version = pageContent.Version,
                                CreatedOn = pageContent.CreatedOn,
                                CreatedBy = pageContent.CreatedByUser,
                                LastModifiedOn = pageContent.ModifiedOn,
                                LastModifiedBy = pageContent.ModifiedByUser,
                                ContentId = pageContent.Content.Id,
                                PageId = pageContent.Page.Id,
                                RegionId = pageContent.Region.Id,
                                Order = pageContent.Order,
                                ParentPageContentId = pageContent.Parent != null ? pageContent.Parent.Id : (Guid?) null
                            })
                    .FirstOne();

            var response = new GetPageContentResponse { Data = model };

            if (request.Data.IncludeOptions)
            {
                response.Options = PageContentOptionsHelper.GetPageContentOptionsList(repository, request.PageContentId, rootOptionService);
            }

            return response;
        }
Пример #2
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);
            }
        }
Пример #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);
            }
        }