Replaces ITaskService/TaskService, completing the CQRS/mediator
refactor. All 9 old service interfaces are now gone except
IPermissionService, ITokenService, and IPasswordHasher, which stay
plain injected services by design (see spec).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces IDocumentService/DocumentService. The permission-check and
descendant-deletion logic moves to a shared DocumentAccess static
helper used by all seven handlers.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces IProjectService/ProjectService. IProjectMemberService is
left in place for now — ProjectMembersController still depends on it
until the next task converts it too.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces IRoleService/RoleService. The permission-builder logic moves
to a shared RolePermissionBuilder static helper used by both the
create and update handlers. RolesController keeps its inline
IPermissionService checks unchanged.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces IAccountService/AccountService with one command/query per
operation, following the pattern set in the Auth module.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds the MediatR package and wires AddMediatR in DI. Replaces
IAuthService/AuthService with LoginCommand/LoginHandler, the pattern
the remaining modules will follow.
The ASP.NET Core solution (mws.api/mws.application/mws.domain/
mws.infrastructure) existed only as untracked working files. Adding
it to version control, plus a .gitignore for build output and local
tooling directories, so the CQRS/mediator refactor plan has a real
git history to branch and diff against.
Documents the plan to replace the 9 IXService interfaces with
MediatR commands/queries + handlers, keeping IPermissionService,
ITokenService, and IPasswordHasher as plain injected helpers.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>