using DigitalData.Core.DTO; using System.DirectoryServices; namespace DigitalData.Core.Abstractions.Application { public interface IDirectorySearchService { public string ServerName { get; } public string Root { get; } string SearchRootPath { get; } Dictionary CustomSearchFilters { get; } bool ValidateCredentials(string dirEntryUsername, string dirEntryPassword); DataResult> FindAll(DirectoryEntry searchRoot, string filter, SearchScope searchScope = SearchScope.Subtree, int sizeLimit = 5000, params string[] properties); DataResult> FindAllByUserCache(string username, string filter, SearchScope searchScope = SearchScope.Subtree, int sizeLimit = 5000, params string[] properties); void SetSearchRootCache(string username, string password); DirectoryEntry? GetSearchRootCache(string username); } }