diff --git a/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs b/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs index fdfe7f6..be7c761 100644 --- a/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs +++ b/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs @@ -9,6 +9,10 @@ namespace DigitalData.ActiveDirectory; public record DirectorySearchQuery(string? Filter = null, SearchScope Scope = SearchScope.Subtree, int SizeLimit = 5000, params string[] Property) : IRequest> { + public record Root(string Path, string? Username = null, string? Password = null); + + public Root? SearchRoot { get; set; } + public Action? AfterInit { get; set; } } @@ -25,13 +29,6 @@ public class DirectorySearchQueryHandler : IRequestHandler new () - { - Path = _options.Value.Path, - Username = _options.Value.Username, - Password = _options.Value.Password - }; - //TODO: add resolver to handle SearchRoot and AfterInit mapping public Task> Handle(DirectorySearchQuery request, CancellationToken cancellationToken = default) { @@ -39,7 +36,12 @@ public class DirectorySearchQueryHandler : IRequestHandler(request); - searcher.SearchRoot = DirectoryEntry; + searcher.SearchRoot ??= new() + { + Path = _options.Value.Path, + Username = _options.Value.Username, + Password = _options.Value.Password + }; request.AfterInit?.Invoke(searcher); diff --git a/src/DigitalData.ActiveDirectory/MappingProfile.cs b/src/DigitalData.ActiveDirectory/MappingProfile.cs index 6296d57..031f9aa 100644 --- a/src/DigitalData.ActiveDirectory/MappingProfile.cs +++ b/src/DigitalData.ActiveDirectory/MappingProfile.cs @@ -9,5 +9,6 @@ public class MappingProfile : Profile public MappingProfile() { CreateMap(); + CreateMap(); } }