internal static IADOPathNode BuildSearchFilter(IADOPathNode filter, MappingTable <AttributeConverterEntry> attrMapBaseObj, MappingTable <AttributeConverterEntry> attrMapChildObj, CmdletSessionInfo sessionInfo) { BinaryADOPathNode binaryADOPathNode = filter as BinaryADOPathNode; if (binaryADOPathNode == null) { return(null); } else { string ldapFilterString = binaryADOPathNode.LeftNode.GetLdapFilterString(); AttributeConverterEntry attributeConverterEntry = null; if (!attrMapBaseObj.TryGetValue(ldapFilterString, out attributeConverterEntry)) { if (!attrMapChildObj.TryGetValue(ldapFilterString, out attributeConverterEntry)) { string[] strArrays = new string[1]; strArrays[0] = ldapFilterString; return(SearchConverters.ToSearchObjectClientSideFilter(ldapFilterString, strArrays, filter, sessionInfo)); } else { return(attributeConverterEntry.InvokeToSearcherConverter(filter, sessionInfo)); } } else { return(attributeConverterEntry.InvokeToSearcherConverter(filter, sessionInfo)); } } }
internal static ICollection <string> GetChildAttributes(MappingTable <AttributeConverterEntry> attrMapBaseObj, MappingTable <AttributeConverterEntry> attrMapChildObj, ICollection <string> propertiesToFetch) { AttributeConverterEntry attributeConverterEntry = null; HashSet <string> strs = new HashSet <string>(StringComparer.OrdinalIgnoreCase); if (propertiesToFetch != null) { if (!propertiesToFetch.Contains("*")) { foreach (string str in propertiesToFetch) { if (!attrMapChildObj.TryGetValue(str, out attributeConverterEntry) || attrMapBaseObj.TryGetValue(str, out attributeConverterEntry)) { continue; } strs.Add(str); } } else { foreach (AttributeConverterEntry value in attrMapChildObj.Values) { strs.Add(value.ExtendedAttribute); } } } return(strs); }
internal virtual IADOPathNode BuildSearchFilter(IADOPathNode filter) { if (this.CmdletSessionInfo != null) { MappingTable <AttributeConverterEntry> item = ADFactoryBase <T> .AttributeTable[this.ConnectedStore]; BinaryADOPathNode binaryADOPathNode = filter as BinaryADOPathNode; if (binaryADOPathNode == null) { return(null); } else { string ldapFilterString = binaryADOPathNode.LeftNode.GetLdapFilterString(); AttributeConverterEntry attributeConverterEntry = null; if (!item.TryGetValue(ldapFilterString, out attributeConverterEntry)) { string[] strArrays = new string[1]; strArrays[0] = ldapFilterString; return(SearchConverters.ToSearchUsingSchemaInfo(ldapFilterString, strArrays, filter, this.CmdletSessionInfo)); } else { return(attributeConverterEntry.InvokeToSearcherConverter(filter, this.CmdletSessionInfo)); } } } else { throw new ArgumentNullException(StringResources.SessionRequired); } }
internal override void UpdateFromObject(T modifiedObject, ADObject directoryObj) { AttributeConverterEntry attributeConverterEntry = null; if (modifiedObject.Contains("SuggestedValues")) { MappingTable <AttributeConverterEntry> item = ADClaimTypeBaseFactory <T> .AttributeTable[base.ConnectedStore]; if (item.TryGetValue("SuggestedValues", out attributeConverterEntry)) { attributeConverterEntry.InvokeToDirectoryConverter(modifiedObject["SuggestedValues"], directoryObj, base.CmdletSessionInfo); } } base.UpdateFromObject(modifiedObject, directoryObj); }
internal static ICollection <string> GetParentAttributes(MappingTable <AttributeConverterEntry> attrMapBaseObj, MappingTable <AttributeConverterEntry> attrMapChildObj, ICollection <string> propertiesToFetch) { AttributeConverterEntry attributeConverterEntry = null; HashSet <string> strs = new HashSet <string>(StringComparer.OrdinalIgnoreCase); if (propertiesToFetch != null) { foreach (string str in propertiesToFetch) { if (!attrMapBaseObj.TryGetValue(str, out attributeConverterEntry) && attrMapChildObj.TryGetValue(str, out attributeConverterEntry)) { continue; } strs.Add(str); } } return(strs); }
private void CreateSiteChildObjects(ADFactory <T> .DirectoryOperation operation, T instance, ADParameterSet parameters, ADObject directoryObj) { AttributeConverterEntry attributeConverterEntry = null; bool flag = ADFactory <T> .DirectoryOperation.Create == operation; MappingTable <AttributeConverterEntry> item = ADNtdsSiteSettingFactory <ADNtdsSiteSetting> .AttributeTable[base.ConnectedStore]; MappingTable <AttributeConverterEntry> mappingTable = ADReplicationSiteFactory <T> .AttributeTable[base.ConnectedStore]; IDictionary <string, ADPropertyValueCollection> strs = new Dictionary <string, ADPropertyValueCollection>(); if (instance != null) { foreach (string propertyName in instance.PropertyNames) { if (flag && instance[propertyName].Value == null || mappingTable.TryGetValue(propertyName, out attributeConverterEntry) || !item.TryGetValue(propertyName, out attributeConverterEntry)) { continue; } strs.Add(propertyName, instance[propertyName]); } } IDictionary <string, ADPropertyValueCollection> aDPVCDictionary = parameters.GetADPVCDictionary(); foreach (string key in aDPVCDictionary.Keys) { if (mappingTable.TryGetValue(key, out attributeConverterEntry) || !item.TryGetValue(key, out attributeConverterEntry)) { continue; } if (!strs.ContainsKey(key)) { strs.Add(key, aDPVCDictionary[key]); } else { strs[key] = aDPVCDictionary[key]; } } string str = ADPathModule.MakePath(directoryObj.DistinguishedName, "CN=NTDS Site Settings,", ADPathFormat.X500); ADNtdsSiteSettingFactory <ADNtdsSiteSetting> aDNtdsSiteSettingFactory = new ADNtdsSiteSettingFactory <ADNtdsSiteSetting>(); aDNtdsSiteSettingFactory.SetCmdletSessionInfo(base.CmdletSessionInfo); ADObject directoryObjectFromIdentity = null; if (!flag) { try { ADNtdsSiteSetting aDNtdsSiteSetting = new ADNtdsSiteSetting(str); directoryObjectFromIdentity = aDNtdsSiteSettingFactory.GetDirectoryObjectFromIdentity(aDNtdsSiteSetting, directoryObj.DistinguishedName); } catch (ADIdentityNotFoundException aDIdentityNotFoundException) { DebugLogger.LogInfo(this._debugCategory, string.Format("ADReplicationSiteFactory: Ntds-Site-Setting object not found for the site {0}, while updating the properties of the ntds-site-settings", directoryObj.DistinguishedName)); } } if (directoryObjectFromIdentity == null) { flag = true; directoryObjectFromIdentity = new ADObject(str, aDNtdsSiteSettingFactory.StructuralObjectClass); } foreach (string key1 in strs.Keys) { if (!item.TryGetValue(key1, out attributeConverterEntry) || !attributeConverterEntry.IsDirectoryConverterDefined) { continue; } attributeConverterEntry.InvokeToDirectoryConverter(strs[key1], directoryObjectFromIdentity, base.CmdletSessionInfo); } using (ADActiveObject aDActiveObject = new ADActiveObject(base.CmdletSessionInfo.ADSessionInfo, directoryObjectFromIdentity)) { if (!flag) { aDActiveObject.Update(); } else { aDActiveObject.Create(); } } if (operation == ADFactory <T> .DirectoryOperation.Create) { this.CreateServerContainer(directoryObj.DistinguishedName); } }