From f73730ba6554ec61be16787da66ef0b3b6b648eb Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 5 Aug 2025 15:41:01 +0200 Subject: [PATCH] =?UTF-8?q?refactor(DirectorySearchQuery):=20Root-Datensat?= =?UTF-8?q?z=20definieren.=20=20-=20SearchRoot-Eigenschaft=20hinzuf=C3=BCg?= =?UTF-8?q?en=20=20-=20Zuordnungsprofil=20zwischen=20DirectorySearchQuery.?= =?UTF-8?q?Root=20und=20DirectoryEntry=20hinzuf=C3=BCgen=20=20-=20Logik=20?= =?UTF-8?q?hinzuf=C3=BCgen,=20um=20den=20Standardwert=20SearcdhRoot=20zu?= =?UTF-8?q?=20verwenden,=20wenn=20DirectorySearchQuery.Root=20null=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DirectorySearchQuery.cs | 18 ++++++++++-------- .../MappingProfile.cs | 1 + 2 files changed, 11 insertions(+), 8 deletions(-) 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(); } }