diff --git a/DigitalData.ActiveDirectory.sln b/DigitalData.ActiveDirectory.sln index c5560d1..1e50bef 100644 --- a/DigitalData.ActiveDirectory.sln +++ b/DigitalData.ActiveDirectory.sln @@ -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 diff --git a/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs b/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs new file mode 100644 index 0000000..7c765a0 --- /dev/null +++ b/src/DigitalData.ActiveDirectory/DirectorySearchQuery.cs @@ -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? Options { get; set; } +} + +[System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "")] +public class DirectorySearchQueryHandler(IOptions options) : IRequestHandler +{ + + 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(); + } +} \ No newline at end of file