Beispiel #1
0
        protected override void ExecuteCmdlet()
        {
            ClientSidePage clientSidePage = null;

            // Check if the page exists

            string name = ClientSidePageUtilities.EnsureCorrectPageName(Name);

            bool pageExists = false;

            try
            {
                ClientSidePage.Load(ClientContext, name);
                pageExists = true;
            }
            catch { }

            if (pageExists)
            {
                throw new Exception($"Page {name} already exists");
            }

            // Create a page that persists immediately
            clientSidePage            = SelectedWeb.AddClientSidePage(name);
            clientSidePage.LayoutType = LayoutType;
            clientSidePage.Save(name);

            // If a specific promote type is specified, promote the page as Home or Article or ...
            switch (PromoteAs)
            {
            case ClientSidePagePromoteType.HomePage:
                clientSidePage.PromoteAsHomePage();
                break;

            case ClientSidePagePromoteType.NewsArticle:
                clientSidePage.PromoteAsNewsArticle();
                break;

            case ClientSidePagePromoteType.None:
            default:
                break;
            }


            if (MyInvocation.BoundParameters.ContainsKey("CommentsEnabled"))
            {
                if (CommentsEnabled)
                {
                    clientSidePage.EnableComments();
                }
                else
                {
                    clientSidePage.DisableComments();
                }
            }

            if (Publish)
            {
                clientSidePage.Publish();
            }

            WriteObject(clientSidePage);
        }
        protected override void ExecuteCmdlet()
        {
            ClientSidePage clientSidePage = null;

            // Check if the page exists

            string name = ClientSidePageUtilities.EnsureCorrectPageName(Name);

            bool pageExists = false;

            try
            {
                ClientSidePage.Load(ClientContext, name);
                pageExists = true;
            }
            catch { }

            if (pageExists)
            {
                throw new Exception($"Page {name} already exists");
            }

            // Create a page that persists immediately
            clientSidePage            = SelectedWeb.AddClientSidePage(name);
            clientSidePage.LayoutType = LayoutType;
            if (PromoteAs == ClientSidePagePromoteType.Template)
            {
                clientSidePage.SaveAsTemplate(name);
            }
            else
            {
                clientSidePage.Save(name);
            }

            if (ParameterSpecified(nameof(ContentType)))
            {
                ContentType ct = null;
                if (ContentType.ContentType == null)
                {
                    if (ContentType.Id != null)
                    {
                        ct = SelectedWeb.GetContentTypeById(ContentType.Id, true);
                    }
                    else if (ContentType.Name != null)
                    {
                        ct = SelectedWeb.GetContentTypeByName(ContentType.Name, true);
                    }
                }
                else
                {
                    ct = ContentType.ContentType;
                }
                if (ct != null)
                {
                    ct.EnsureProperty(w => w.StringId);

                    clientSidePage.PageListItem["ContentTypeId"] = ct.StringId;
                    clientSidePage.PageListItem.SystemUpdate();
                    ClientContext.ExecuteQueryRetry();
                }
            }

            // If a specific promote type is specified, promote the page as Home or Article or ...
            switch (PromoteAs)
            {
            case ClientSidePagePromoteType.HomePage:
                clientSidePage.PromoteAsHomePage();
                break;

            case ClientSidePagePromoteType.NewsArticle:
                clientSidePage.PromoteAsNewsArticle();
                break;

            case ClientSidePagePromoteType.None:
            default:
                break;
            }


            if (ParameterSpecified(nameof(CommentsEnabled)))
            {
                if (CommentsEnabled)
                {
                    clientSidePage.EnableComments();
                }
                else
                {
                    clientSidePage.DisableComments();
                }
            }

            if (Publish)
            {
                clientSidePage.Publish();
            }

            WriteObject(clientSidePage);
        }