private List <SCItem> ConvertItemAndFields(SCItem sourceItem, Guid destParentId) { List <SCItem> destItems = new List <SCItem>(); List <SCItem> convertedItems = new List <SCItem>(); var destItem = new SCItem() { ID = sourceItem.ID, Name = sourceItem.Name, MasterID = Guid.Empty, ParentID = destParentId, Created = sourceItem.Created, Updated = sourceItem.Updated, TemplateID = _itemMetadataTemplate.destTemplateId, Fields = sourceItem.Fields }; // Create descendant items destItems.AddRange(_itemFactory.CreateDescendantItems(_itemMetadataTemplate, destItem)); if (destItems.Any()) { var lastDescendantItem = destItems.FirstOrDefault(item => !destItems.Select(i => i.ParentID).Contains(item.ID)); convertedItems = ConvertFields(destItem, lastDescendantItem); } else { convertedItems = ConvertFields(destItem, null); } destItems.AddRange(convertedItems); return(destItems); }
public virtual void WriteDescendentItems(MetadataTemplate metadataTemplate, SCItem parentItem) { var descendantItems = _itemFactory.CreateDescendantItems(metadataTemplate, parentItem); foreach (SCItem descendantItem in descendantItems) { _destMasterRepository.AddOrUpdateSitecoreItem(descendantItem); } }