本文整理汇总了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;
}