public override void UpdateModifyRequestForTarget(TenantRelocationSyncTranslator translator, DirectoryAttribute sourceValue, ref DirectoryAttributeModification mod)
 {
     object[] values = sourceValue.GetValues(typeof(T));
     foreach (object obj in values)
     {
         Guid guid = this.GetGuid(obj);
         if (guid.Equals(EmailAddressPolicy.PolicyGuid) || Guid.Empty.Equals(guid))
         {
             if (this.IsString)
             {
                 mod.Add((string)obj);
             }
             else
             {
                 mod.Add((byte[])obj);
             }
         }
         else
         {
             DistinguishedNameMapItem distinguishedNameMapItem = translator.Mappings.LookupByCorrelationGuid(guid);
             if (distinguishedNameMapItem == null)
             {
                 this.AddValue(mod, guid);
             }
             else
             {
                 this.AddValue(mod, distinguishedNameMapItem.TargetDN.ObjectGuid);
             }
         }
     }
     mod.Name      = sourceValue.Name;
     mod.Operation = DirectoryAttributeOperation.Replace;
 }
Example #2
0
 public void Remove(DistinguishedNameMapItem item)
 {
     if (item.SourceDN != null && !string.IsNullOrEmpty(item.SourceDN.DistinguishedName))
     {
         this.sourceDnDictionary[item.SourceDN.DistinguishedName] = null;
     }
     if (item.TargetDN != null && !string.IsNullOrEmpty(item.TargetDN.DistinguishedName))
     {
         this.targetDnDictionary[item.TargetDN.DistinguishedName] = null;
     }
     if (!item.CorrelationId.Equals(Guid.Empty))
     {
         this.correlationGuidDictionary[item.CorrelationId] = null;
     }
 }
Example #3
0
        public void Insert(ADObjectId source, ADObjectId target, Guid correlationId)
        {
            DistinguishedNameMapItem value = new DistinguishedNameMapItem(source, target, correlationId);

            if (source != null && !string.IsNullOrEmpty(source.DistinguishedName))
            {
                this.sourceDnDictionary[source.DistinguishedName] = value;
            }
            if (target != null && !string.IsNullOrEmpty(target.DistinguishedName))
            {
                this.targetDnDictionary[target.DistinguishedName] = value;
            }
            if (!correlationId.Equals(Guid.Empty))
            {
                this.correlationGuidDictionary[correlationId] = value;
            }
        }