本文整理汇总了C#中Models.CopyDataTo方法的典型用法代码示例。如果您正苦于以下问题:C# Models.CopyDataTo方法的具体用法?C# Models.CopyDataTo怎么用?C# Models.CopyDataTo使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Models
的用法示例。
在下文中一共展示了Models.CopyDataTo方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SavePreviewOrDraftContentWithStatusUpdate
private void SavePreviewOrDraftContentWithStatusUpdate(Models.Content originalContent, Models.Content updatedContent, ContentStatus requestedStatus)
{
/*
* Edit preview or draft content:
* -> Save as preview or draft - look for preview or draft version in a history list or create a new history version with requested preview status with reference to an original content.
* -> Save draft - just update field and save.
* -> Publish - look if the published content (look for original) exists:
* - published content exits:
* | create a history content version of the published (clone it). update original with draft data and remove draft|preview.
* - published content not exists:
* | save draft content as published
*/
if (requestedStatus == ContentStatus.Preview || requestedStatus == ContentStatus.Draft)
{
var previewOrDraftContentVersion = originalContent.History.FirstOrDefault(f => f.Status == requestedStatus && !f.IsDeleted);
if (previewOrDraftContentVersion == null)
{
if (originalContent.Status == requestedStatus
|| (originalContent.Status == ContentStatus.Preview && requestedStatus == ContentStatus.Draft))
{
previewOrDraftContentVersion = originalContent;
}
else
{
previewOrDraftContentVersion = originalContent.Clone();
previewOrDraftContentVersion.Original = originalContent;
originalContent.History.Add(previewOrDraftContentVersion);
}
}
updatedContent.CopyDataTo(previewOrDraftContentVersion, false, false);
SetContentOptions(previewOrDraftContentVersion, updatedContent);
SetContentRegions(previewOrDraftContentVersion, updatedContent);
previewOrDraftContentVersion.Status = requestedStatus;
repository.Save(previewOrDraftContentVersion);
}
else if (requestedStatus == ContentStatus.Published)
{
var publishedVersion = originalContent.History.FirstOrDefault(f => f.Status == requestedStatus && !f.IsDeleted);
if (publishedVersion != null)
{
var originalToArchive = originalContent.Clone();
originalToArchive.Status = ContentStatus.Archived;
originalToArchive.Original = originalContent;
originalContent.History.Add(originalToArchive);
repository.Save(originalToArchive);
}
updatedContent.CopyDataTo(originalContent, false, false);
SetContentOptions(originalContent, updatedContent);
SetContentRegions(originalContent, updatedContent);
originalContent.Status = requestedStatus;
if (!originalContent.PublishedOn.HasValue)
{
originalContent.PublishedOn = DateTime.Now;
}
if (string.IsNullOrWhiteSpace(originalContent.PublishedByUser))
{
originalContent.PublishedByUser = securityService.CurrentPrincipalName;
}
repository.Save(originalContent);
}
}
示例2: SavePublishedContentWithStatusUpdate
private void SavePublishedContentWithStatusUpdate(Models.Content originalContent, Models.Content updatedContent, ContentStatus requestedStatus)
{
/*
* Edit published content:
* -> Save as draft, preview - look for draft|preview version in history list or create a new history version with requested status (draft, preview) with reference to an original content.
* -> Publish - current published version should be cloned to archive version with reference to original (archive state) and original updated with new data (published state).
* Look for preview|draft versions - if exists remote it.
*/
if (requestedStatus == ContentStatus.Preview || requestedStatus == ContentStatus.Draft)
{
var contentVersionOfRequestedStatus = originalContent.History.FirstOrDefault(f => f.Status == requestedStatus && !f.IsDeleted);
if (contentVersionOfRequestedStatus == null)
{
contentVersionOfRequestedStatus = originalContent.Clone();
}
updatedContent.CopyDataTo(contentVersionOfRequestedStatus, false, false);
SetContentOptions(contentVersionOfRequestedStatus, updatedContent);
SetContentRegions(contentVersionOfRequestedStatus, updatedContent);
contentVersionOfRequestedStatus.Original = originalContent;
contentVersionOfRequestedStatus.Status = requestedStatus;
originalContent.History.Add(contentVersionOfRequestedStatus);
repository.Save(contentVersionOfRequestedStatus);
}
if (requestedStatus == ContentStatus.Published)
{
// Original is copied with options and saved.
// Removes options from original.
// Locks new stuff from view model.
var originalToArchive = originalContent.Clone();
originalToArchive.Status = ContentStatus.Archived;
originalToArchive.Original = originalContent;
originalContent.History.Add(originalToArchive);
repository.Save(originalToArchive);
updatedContent.CopyDataTo(originalContent, false, false);
SetContentOptions(originalContent, updatedContent);
SetContentRegions(originalContent, updatedContent);
originalContent.Status = requestedStatus;
if (!originalContent.PublishedOn.HasValue)
{
originalContent.PublishedOn = DateTime.Now;
}
if (string.IsNullOrWhiteSpace(originalContent.PublishedByUser))
{
originalContent.PublishedByUser = securityService.CurrentPrincipalName;
}
repository.Save(originalContent);
IList<Models.Content> contentsToRemove = originalContent.History.Where(f => f.Status == ContentStatus.Preview || f.Status == ContentStatus.Draft).ToList();
foreach (var redundantContent in contentsToRemove)
{
repository.Delete(redundantContent);
originalContent.History.Remove(redundantContent);
}
}
}