feat(DirectorySearchQuery): create to handle directory search

- define query model
This commit is contained in:
Developer 02 2025-08-02 21:24:19 +02:00
parent 39982139d3
commit e75127c74e
2 changed files with 32 additions and 0 deletions

View File

@ -9,6 +9,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DigitalData.ActiveDirectory
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DigitalData.ActiveDirectory.API", "src\DigitalData.ActiveDirectory.API\DigitalData.ActiveDirectory.API.csproj", "{2B3A9620-E298-00ED-CC4B-A6A83F822A01}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU

View File

@ -0,0 +1,27 @@
using MediatR;
using Microsoft.Extensions.Options;
using System.DirectoryServices;
namespace DigitalData.ActiveDirectory;
public record DirectorySearchQuery(string? Filter = null, SearchScope Scope = SearchScope.Subtree, int SizeLimit = 5000) : IRequest
{
public Action<DirectorySearcher>? Options { get; set; }
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "<Pending>")]
public class DirectorySearchQueryHandler(IOptions<ActiveDirectoryOptions> options) : IRequestHandler<DirectorySearchQuery>
{
public DirectoryEntry DirectoryEntry => new ()
{
Path = options.Value.Path,
Username = options.Value.Username,
Password = options.Value.Password
};
public Task Handle(DirectorySearchQuery request, CancellationToken cancellationToken)
{
throw new NotImplementedException();
}
}