public bool InnerExecuteSearchRecursively(DirectoryEntry root, string filter, ADSearchConditions condition, ADSearchRecursivelyDelegate callback, object oParams, object lastResult, string[] properties) { bool bContinue = true; ADSearchConditions newCondition = new ADSearchConditions(condition); newCondition.Scope = SearchScope.OneLevel; ADSearchResultParams asrp = new ADSearchResultParams(root); asrp.LastResult = lastResult; List <SearchResult> resultList = ExecuteSearch(root, filter, condition, properties); foreach (SearchResult sr in resultList) { if (bContinue) { if (callback != null) { asrp.LastResult = callback(sr, asrp, oParams, ref bContinue); if (bContinue == false) { break; } } string objClass = sr.Properties["objectClass"][1].ToString(); if (string.Compare(objClass, "organizationalUnit", true) == 0) { bContinue = InnerExecuteSearchRecursively(sr.GetDirectoryEntry(), filter, condition, callback, oParams, asrp.LastResult, properties); } } } return(bContinue); }
public bool InnerExecuteSearchRecursively(DirectoryEntry root, string filter, ADSearchConditions condition, ADSearchRecursivelyDelegate callback, object oParams, object lastResult, string[] properties) { bool bContinue = true; ADSearchConditions newCondition = new ADSearchConditions(condition); newCondition.Scope = SearchScope.OneLevel; ADSearchResultParams asrp = new ADSearchResultParams(root); asrp.LastResult = lastResult; List<SearchResult> resultList = ExecuteSearch(root, filter, condition, properties); foreach (SearchResult sr in resultList) { if (bContinue) { if (callback != null) { asrp.LastResult = callback(sr, asrp, oParams, ref bContinue); if (bContinue == false) break; } string objClass = sr.Properties["objectClass"][1].ToString(); if (string.Compare(objClass, "organizationalUnit", true) == 0) { bContinue = InnerExecuteSearchRecursively(sr.GetDirectoryEntry(), filter, condition, callback, oParams, asrp.LastResult, properties); } } } return bContinue; }
public void ExecuteSearchRecursively(DirectoryEntry root, string filter, ADSearchConditions condition, ADSearchRecursivelyDelegate callback, object oParams, params string[] properties) { ExceptionHelper.FalseThrow <ArgumentNullException>(properties != null, "properties"); if (Array.Exists(properties, data => data == "objectClass") == false) { properties = AppendToStringArray(properties, new string[] { "objectClass" }); } InnerExecuteSearchRecursively(root, filter, condition, callback, oParams, null, properties); }
public void ExecuteSearchRecursively(DirectoryEntry root, string filter, ADSearchConditions condition, ADSearchRecursivelyDelegate callback, object oParams, params string[] properties) { ExceptionHelper.FalseThrow<ArgumentNullException>(properties != null, "properties"); if (Array.Exists(properties, data => data == "objectClass") == false) properties = AppendToStringArray(properties, new string[] { "objectClass" }); InnerExecuteSearchRecursively(root, filter, condition, callback, oParams, null, properties); }