public static void SaveToItem([NotNull] IntegrationConfigData data, [NotNull] Item destinationIntegrationItem) { Assert.ArgumentNotNull(data, "data"); Assert.ArgumentNotNull(destinationIntegrationItem, "destinationIntegrationItem"); ValidateIntegrationItem(destinationIntegrationItem); string encryptionKey = null; if (data.Credentials != null) { encryptionKey = GetEncryptionKey(destinationIntegrationItem); if (string.IsNullOrEmpty(encryptionKey)) { encryptionKey = Convert.ToBase64String(CryptoManager.GenerateKey()); SaveEncryptionKey(encryptionKey, destinationIntegrationItem); } } using (new EditContext(destinationIntegrationItem)) { destinationIntegrationItem[FieldIDs.IntegrationConfigData] = data.SerializeToString(encryptionKey); new CheckboxField(destinationIntegrationItem.Fields[FieldIDs.ScheduledBlobTransfer]) { Checked = data.ScheduledBlobTransfer }; new CheckboxField(destinationIntegrationItem.Fields[FieldIDs.BidirectionalLink]) { Checked = data.BidirectionalLink }; } }
public IntegrationConfigData Clone() { var clone = new IntegrationConfigData(this.Server, this.List, this.TemplateID) { Web = this.Web, Folder = this.Folder, View = this.View, ItemLimit = this.ItemLimit, ExpirationInterval = this.ExpirationInterval, ScheduledBlobTransfer = this.ScheduledBlobTransfer, BidirectionalLink = this.BidirectionalLink, IsSharepointOnline = this.IsSharepointOnline, ConnectionConfiguration = this.ConnectionConfiguration }; var credentials = this.Credentials as NetworkCredential; clone.Credentials = credentials == null ? null : new NetworkCredential(credentials.UserName, credentials.Password, credentials.Domain); foreach (FieldMapping fieldMapping in this.FieldMappings) { clone.FieldMappings.Add(fieldMapping.Clone()); } return(clone); }
public static IntegrationConfigData GetFromItem([NotNull] Item sourceIntegrationItem) { Assert.ArgumentNotNull(sourceIntegrationItem, "sourceIntegrationItem"); ValidateIntegrationItem(sourceIntegrationItem); string xmlData = sourceIntegrationItem.Fields[FieldIDs.IntegrationConfigData].Value; if (string.IsNullOrEmpty(xmlData)) { return(null); } string encryptionKey = GetEncryptionKey(sourceIntegrationItem); var data = new IntegrationConfigData(xmlData, encryptionKey) { ScheduledBlobTransfer = new CheckboxField(sourceIntegrationItem.Fields[FieldIDs.ScheduledBlobTransfer]).Checked, BidirectionalLink = new CheckboxField(sourceIntegrationItem.Fields[FieldIDs.BidirectionalLink]).Checked }; return(data); }