WIP: AEG-VS-01-04 Part 2 - DI setup + Endpoint refactoring (token budget constraint)

- Added IdentityAccessModule.cs with DI registration
- Added KArtSell.Modules.IdentityAccess.csproj with FastEndpoints deps
- Added project files for UnitTests & IntegrationTests
- Updated Program.cs to register IdentityAccessModule
- Updated Host.csproj to reference IdentityAccess module
- Fixed Directory.Packages.props with Moq + MS.Extensions.DependencyInjection

ISSUES (to fix next session):
- FastEndpoints Send/SendAsync/SendOkAsync method resolution incomplete
- Response record initialization requires field values
- Need to refactor endpoints to match ModelOperations pattern exactly

WORKING:
- Domain layer (IdentityState, RoleAssignmentState) 
- SQL repositories (Dapper) 
- Unit tests (RegisterIdentity, RequestMfaSetup handlers) 
- Integration test structure ready 

Next: Simplify endpoints using 'Endpoint<Req,Resp>' pattern from GetApprovalQueue sample

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 17:50:25 +09:00
parent b3cb9032ac
commit dc8f3466c9
16 changed files with 410 additions and 141 deletions
+51
View File
@@ -33,6 +33,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.Modules.SignalEngi
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.Modules.ModelOperations", "src\KArtSell.Modules.ModelOperations\KArtSell.Modules.ModelOperations.csproj", "{215F2FBC-B2D9-47E0-9807-A75392D17BBA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{EC447DCF-ABFA-6E24-52A5-D7FD48A5C558}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IdentityAccess", "IdentityAccess", "{10F243C0-5589-5C7D-3314-BD3AC559A253}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.Modules.IdentityAccess", "src\Modules\IdentityAccess\KArtSell.Modules.IdentityAccess.csproj", "{621C488C-0670-4C83-91FF-DD959F910705}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.IdentityAccess.UnitTests", "tests\KArtSell.IdentityAccess.UnitTests\KArtSell.IdentityAccess.UnitTests.csproj", "{41D052CC-68F1-4C75-B069-69E81C6CFCED}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.IdentityAccess.IntegrationTests", "tests\KArtSell.IdentityAccess.IntegrationTests\KArtSell.IdentityAccess.IntegrationTests.csproj", "{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -199,6 +209,42 @@ Global
{215F2FBC-B2D9-47E0-9807-A75392D17BBA}.Release|x64.Build.0 = Release|Any CPU
{215F2FBC-B2D9-47E0-9807-A75392D17BBA}.Release|x86.ActiveCfg = Release|Any CPU
{215F2FBC-B2D9-47E0-9807-A75392D17BBA}.Release|x86.Build.0 = Release|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Debug|Any CPU.Build.0 = Debug|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Debug|x64.ActiveCfg = Debug|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Debug|x64.Build.0 = Debug|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Debug|x86.ActiveCfg = Debug|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Debug|x86.Build.0 = Debug|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Release|Any CPU.ActiveCfg = Release|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Release|Any CPU.Build.0 = Release|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Release|x64.ActiveCfg = Release|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Release|x64.Build.0 = Release|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Release|x86.ActiveCfg = Release|Any CPU
{621C488C-0670-4C83-91FF-DD959F910705}.Release|x86.Build.0 = Release|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Debug|x64.ActiveCfg = Debug|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Debug|x64.Build.0 = Debug|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Debug|x86.ActiveCfg = Debug|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Debug|x86.Build.0 = Debug|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Release|Any CPU.Build.0 = Release|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Release|x64.ActiveCfg = Release|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Release|x64.Build.0 = Release|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Release|x86.ActiveCfg = Release|Any CPU
{41D052CC-68F1-4C75-B069-69E81C6CFCED}.Release|x86.Build.0 = Release|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Debug|x64.ActiveCfg = Debug|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Debug|x64.Build.0 = Debug|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Debug|x86.ActiveCfg = Debug|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Debug|x86.Build.0 = Debug|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Release|Any CPU.Build.0 = Release|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Release|x64.ActiveCfg = Release|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Release|x64.Build.0 = Release|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Release|x86.ActiveCfg = Release|Any CPU
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -209,5 +255,10 @@ Global
{6C936661-4907-4C75-9167-B9017F9AA7E8} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{B44E86C4-3ACB-46AA-85F8-5D3FC1AAA954} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{215F2FBC-B2D9-47E0-9807-A75392D17BBA} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{EC447DCF-ABFA-6E24-52A5-D7FD48A5C558} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{10F243C0-5589-5C7D-3314-BD3AC559A253} = {EC447DCF-ABFA-6E24-52A5-D7FD48A5C558}
{621C488C-0670-4C83-91FF-DD959F910705} = {10F243C0-5589-5C7D-3314-BD3AC559A253}
{41D052CC-68F1-4C75-B069-69E81C6CFCED} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{FCE01940-B4A4-4384-810B-AAD16D9CEE4F} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
EndGlobalSection
EndGlobal