public static void CopyFieldValues( [NotNull] Item sourceIntegrationItem, [NotNull] SharepointBaseItem targetSharepointItem, [NotNull] IntegrationConfigData integrationConfigData) { Assert.ArgumentNotNull(sourceIntegrationItem, "sourceIntegrationItem"); Assert.ArgumentNotNull(targetSharepointItem, "targetSharepointItem"); Assert.ArgumentNotNull(integrationConfigData, "integrationConfigData"); foreach (IntegrationConfigData.FieldMapping fieldMapping in integrationConfigData.FieldMappings) { if (sourceIntegrationItem.Fields[fieldMapping.Target] == null) { continue; } TranslateIntegrationValueArgs pipelineArgs = TranslateSynchValuePipelinesRunner.TranslateIntegrationValue( sourceIntegrationItem, fieldMapping.Target, targetSharepointItem, fieldMapping.Source); if (pipelineArgs != null && !(String.IsNullOrEmpty(targetSharepointItem[fieldMapping.Source]) && String.IsNullOrEmpty(pipelineArgs.TranslatedValue))) { targetSharepointItem[fieldMapping.Source] = pipelineArgs.TranslatedValue; } } }
public static ProcessSharepointItemArgs DeleteSharepointItem([NotNull] SharepointBaseItem sharepointItem, [NotNull] SynchContext synchContext) { Assert.ArgumentNotNull(sharepointItem, "sharepointItem"); Assert.ArgumentNotNull(synchContext, "synchContext"); var pipelineArgs = new ProcessSharepointItemArgs { SharepointItemID = sharepointItem.UniqueID, SharepointItem = sharepointItem, SynchContext = synchContext }; return(DeleteSharepointItem(pipelineArgs) ? pipelineArgs : null); }
public static void UpdateItem( [NotNull] Item sourceIntegrationItem, [NotNull] SharepointBaseItem targetSharepointItem, [NotNull] SynchContext synchContext) { Assert.ArgumentNotNull(sourceIntegrationItem, "sourceIntegrationItem"); Assert.ArgumentNotNull(targetSharepointItem, "targetSharepointItem"); Assert.ArgumentNotNull(synchContext, "synchContext"); CopyFieldValues(sourceIntegrationItem, targetSharepointItem, synchContext.IntegrationConfigData); var documentItem = targetSharepointItem as DocumentItem; if (documentItem != null) { CopyBlobValue(sourceIntegrationItem, documentItem); } targetSharepointItem.Update(); }
/// <summary> /// Update fields of integration item in CMS from SharePoint. /// </summary> /// <param name="targetIntegrationItem">The item.</param> /// <param name="sourceSharepointItem">The source.</param> /// <param name="synchContext">The synchronization context.</param> public static void UpdateFields([NotNull] Item targetIntegrationItem, [NotNull] SharepointBaseItem sourceSharepointItem, [NotNull] SynchContext synchContext) { Assert.ArgumentNotNull(targetIntegrationItem, "targetIntegrationItem"); Assert.ArgumentNotNull(sourceSharepointItem, "sourceSharepointItem"); Assert.ArgumentNotNull(synchContext, "synchContext"); var folderItem = sourceSharepointItem as FolderItem; if (folderItem != null) { UpdateIntegrationConfigData(targetIntegrationItem, folderItem, synchContext); } using (new EditContext(targetIntegrationItem)) { if (string.IsNullOrEmpty(targetIntegrationItem.Fields[FieldNames.GUID].Value)) { if (targetIntegrationItem.Template.GetField(SharepointFieldIDs.IsIntegrationItem) != null) { new CheckboxField(targetIntegrationItem.Fields[SharepointFieldIDs.IsIntegrationItem]).Checked = true; } } targetIntegrationItem.Fields[FieldNames.GUID].Value = sourceSharepointItem.GUID; foreach (IntegrationConfigData.FieldMapping mapping in synchContext.IntegrationConfigData.FieldMappings) { if (targetIntegrationItem.Fields[mapping.Target] != null) { TranslateSharepointValueArgs pipelineArgs = TranslateSynchValuePipelinesRunner.TranslateSharepointValue(sourceSharepointItem, mapping.Source, targetIntegrationItem, mapping.Target); if (pipelineArgs != null) { targetIntegrationItem[mapping.Target] = pipelineArgs.TranslatedValue; } } } } }
public static ProcessIntegrationItemArgs UpdateIntegrationItem( [NotNull] ID integrationItemID, [NotNull] SharepointBaseItem sourceSharepointItem, [NotNull] SynchContext synchContext, [NotNull] ProcessIntegrationItemsOptions options, [NotNull] EventSender eventSender) { Assert.ArgumentNotNull(integrationItemID, "integrationItemID"); Assert.ArgumentNotNull(sourceSharepointItem, "sourceSharepointItem"); Assert.ArgumentNotNull(synchContext, "synchContext"); Assert.ArgumentNotNull(options, "options"); var pipelineArgs = new ProcessIntegrationItemArgs { IntegrationItemID = integrationItemID, SourceSharepointItem = sourceSharepointItem, SynchContext = synchContext, Options = options, EventSender = eventSender }; return(UpdateIntegrationItem(pipelineArgs) ? pipelineArgs : null); }
public static Item CreateItem( [NotNull] ID integrationItemID, [NotNull] ID integrationItemTemplateID, [NotNull] SharepointBaseItem sourceSharepointItem, [NotNull] SynchContext synchContext) { Assert.ArgumentNotNull(integrationItemID, "integrationItemID"); Assert.ArgumentNotNull(integrationItemTemplateID, "integrationItemTemplateID"); Assert.ArgumentNotNull(sourceSharepointItem, "sourceSharepointItem"); Assert.ArgumentNotNull(synchContext, "synchContext"); var validName = MediaPathManager.ProposeValidMediaPath(sourceSharepointItem.Title); Item integrationItem = ItemManager.AddFromTemplate(validName, integrationItemTemplateID, synchContext.ParentItem, integrationItemID); var folderItem = sourceSharepointItem as FolderItem; if (folderItem != null && integrationItem != null) { UpdateIntegrationConfigData(integrationItem, folderItem, synchContext); } return(integrationItem); }