当前位置: 首页>>代码示例>>C#>>正文


C# Rock.Clone方法代码示例

本文整理汇总了C#中Rock.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# Rock.Clone方法的具体用法?C# Rock.Clone怎么用?C# Rock.Clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Rock的用法示例。


在下文中一共展示了Rock.Clone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GeneratePageCopy

        /// <summary>
        /// This method generates a copy of the given page along with any descendant pages, as well as any blocks on
        /// any of those pages.
        /// </summary>
        /// <param name="sourcePage">The source page.</param>
        /// <param name="pageGuidDictionary">The dictionary containing the original page guids and the corresponding copied page guids.</param>
        /// <param name="blockGuidDictionary">The dictionary containing the original block guids and the corresponding copied block guids.</param>
        /// <param name="currentPersonAliasId">The current person alias identifier.</param>
        /// <returns></returns>
        private Rock.Model.Page GeneratePageCopy( Rock.Model.Page sourcePage, Dictionary<Guid, Guid> pageGuidDictionary, Dictionary<Guid, Guid> blockGuidDictionary, int? currentPersonAliasId = null )
        {
            var targetPage = new Rock.Model.Page();
            targetPage = sourcePage.Clone( false );
            targetPage.CreatedByPersonAlias = null;
            targetPage.CreatedByPersonAliasId = currentPersonAliasId;
            targetPage.CreatedDateTime = RockDateTime.Now;
            targetPage.ModifiedByPersonAlias = null;
            targetPage.ModifiedByPersonAliasId = currentPersonAliasId;
            targetPage.ModifiedDateTime = RockDateTime.Now;
            targetPage.BodyCssClass = sourcePage.BodyCssClass;
            targetPage.Id = 0;
            targetPage.Guid = Guid.NewGuid();
            targetPage.PageTitle = sourcePage.PageTitle + " - Copy";
            targetPage.InternalName = sourcePage.InternalName + " - Copy";
            targetPage.BrowserTitle = sourcePage.BrowserTitle + " - Copy";
            targetPage.IsSystem = false;
            pageGuidDictionary.Add( sourcePage.Guid, targetPage.Guid );

            foreach ( var block in sourcePage.Blocks )
            {
                var newBlock = block.Clone( false );
                newBlock.CreatedByPersonAlias = null;
                newBlock.CreatedByPersonAliasId = currentPersonAliasId;
                newBlock.CreatedDateTime = RockDateTime.Now;
                newBlock.ModifiedByPersonAlias = null;
                newBlock.ModifiedByPersonAliasId = currentPersonAliasId;
                newBlock.ModifiedDateTime = RockDateTime.Now;
                newBlock.Id = 0;
                newBlock.Guid = Guid.NewGuid();
                newBlock.PageId = 0;
                newBlock.IsSystem = false;

                blockGuidDictionary.Add( block.Guid, newBlock.Guid );
                targetPage.Blocks.Add( newBlock );
            }

            foreach ( var oldchildPage in sourcePage.Pages )
            {
                targetPage.Pages.Add( GeneratePageCopy( oldchildPage, pageGuidDictionary, blockGuidDictionary ) );
            }

            return targetPage;
        }
开发者ID:NewSpring,项目名称:Rock,代码行数:53,代码来源:PageService.Partial.cs


注:本文中的Rock.Clone方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。