private bool HandleSupportedSharedConfigurationsProperty(TenantRelocationSyncObject obj, ModifyRequest modRequest, UpdateData mData, TenantRelocationSyncData syncData, ITopologyConfigurationSession targetPartitionSession) { if (!TenantRelocationConfigImpl.GetConfig <bool>("TranslateSupportedSharedConfigurations")) { return(false); } DirectoryAttributeModification directoryAttributeModification = null; MultiValuedProperty <ADObjectId> multiValuedProperty = (MultiValuedProperty <ADObjectId>)obj[OrganizationSchema.SupportedSharedConfigurations]; MultiValuedProperty <ADObjectId> multiValuedProperty2; if (multiValuedProperty != null && multiValuedProperty.Count > 0) { OrganizationId organizationId = syncData.Source.OrganizationId; Exception ex; OrganizationId organizationId2 = SharedConfiguration.FindMostRecentSharedConfigurationInPartition(organizationId, syncData.Target.PartitionId, out ex); if (ex != null) { throw ex; } directoryAttributeModification = this.GetDirectoryAttributeModification(DirectoryAttributeOperation.Add); directoryAttributeModification.Add(organizationId2.ConfigurationUnit.DistinguishedName); modRequest.Modifications.Add(directoryAttributeModification); } else if (this.TryGetSupportedSharedConfigurations(targetPartitionSession, modRequest.DistinguishedName, syncData, out multiValuedProperty2) && multiValuedProperty2 != null && multiValuedProperty2.Count > 0) { directoryAttributeModification = this.GetDirectoryAttributeModification(DirectoryAttributeOperation.Delete); foreach (ADObjectId adobjectId in multiValuedProperty2) { directoryAttributeModification.Add(adobjectId.DistinguishedName); } modRequest.Modifications.Add(directoryAttributeModification); } if (directoryAttributeModification != null) { ExTraceGlobals.TenantRelocationTracer.TraceDebug <string, DirectoryAttributeOperation>((long)this.GetHashCode(), "GenerateModifyRequestLinkMetaDataHandler: add item: attribute {0}, op:{1}", directoryAttributeModification.Name, directoryAttributeModification.Operation); return(true); } return(false); }
public bool HandleObject(TenantRelocationSyncObject obj, ModifyRequest modRequest, UpdateData mData, TenantRelocationSyncData syncData, ITopologyConfigurationSession targetPartitionSession) { bool flag = false; return(flag | this.HandleSupportedSharedConfigurationsProperty(obj, modRequest, mData, syncData, targetPartitionSession)); }