How didar-code/salesmanagementwithddd_design works
This solution contains a working Sales Management API for creating and searching payment methods, plus a much less complete Auth Management area with login and registration command/response contracts. The sales workflow is controller-facing, with handlers performing domain creation or repository search and returning response DTOs; repository persistence is configured through the API. Auth source shown here does not establish an end-to-end login or registration workflow. Relationships are limited to those visible in excerpts or the source index.
Main entry points: CreatePaymentMethodHandler.cs Create handler · Program.cs API composition · SearchPaymentMethodHandler.cs Search handler · AppDbContext.cs Database context
Components 23
Sales API
- Payment method controller
SalesManagement.API/Controllers/PaymentMethodController.cs - API composition
SalesManagement.API/Program.cs
Sales Contracts
- Create payment command
SalesManagement.DTOs/Commands/CreatePaymentMethodCommand.cs - Search payment query
SalesManagement.DTOs/Queries/SearchPaymentMethodQuery.cs - Payment response DTO
SalesManagement.DTOs/Responses/PaymentMethodResponseDto.cs
Sales Application
- Create handler
SalesManagement.Handler/Commands/CreatePaymentMethodHandler.cs - Search handler
SalesManagement.Handler/Queries/SearchPaymentMethodHandler.cs - Command handler interface
SalesManagement.Shared/Generics/ICommandHandler.cs - Query handler interface
SalesManagement.Shared/Generics/IQueryHandler.cs - Command interface
SalesManagement.Shared/ICommand.cs - Query interface
SalesManagement.Shared/IQuery.cs
Domain and Persistence
- Payment method aggregate
SalesManagement.Aggregators/Aggregators/PaymentMethodAggregatorsRoot.cs - Payment repository contract
SalesManagement.Repository/Interfaces/IPaymentMethodRepository.cs - Payment repository
SalesManagement.Repository/Implementations/PaymentMethodRepository.cs - Database context
SalesManagement.Repository/Data/AppDbContext.cs - Sales database
Auth Contracts
- Login command
AuthManagement.DTOs/Commands/LoginCommand.cs - Register command
AuthManagement.DTOs/Commands/RegisterUserCommand.cs - Login response
AuthManagement.DTOs/Responses/LoginResponseDto.cs - Registration response
AuthManagement.DTOs/Responses/RegisterResponseDto.cs - User aggregate root
AuthManagement.Aggregators/Aggregators/UserAggregatorsRoot.cs - Auth API composition
AuthManagement.Api/Program.cs
Other components
- API client
Connections 22
- API client → Payment method controller: sends requests
- Payment method controller → Create payment command: accepts command
SalesManagement.API/Controllers/PaymentMethodController.cs - Payment method controller → Search payment query: accepts query
SalesManagement.API/Controllers/PaymentMethodController.cs - API composition → Create handler: registers handler
SalesManagement.API/Program.cs - API composition → Search handler: registers handler
SalesManagement.API/Program.cs - API composition → Payment repository: registers repository
SalesManagement.API/Program.cs - API composition → Database context: configures context
SalesManagement.API/Program.cs - Create payment command → Command interface: implements
SalesManagement.DTOs/Commands/CreatePaymentMethodCommand.cs - Search payment query → Query interface: implements
SalesManagement.DTOs/Queries/SearchPaymentMethodQuery.cs - Create handler → Command handler interface: implements
SalesManagement.Handler/Commands/CreatePaymentMethodHandler.cs - Search handler → Query handler interface: implements
SalesManagement.Handler/Queries/SearchPaymentMethodHandler.cs - Create handler → Payment method aggregate: creates aggregate
SalesManagement.Handler/Commands/CreatePaymentMethodHandler.cs - Create handler → Payment repository contract: adds and saves
SalesManagement.Handler/Commands/CreatePaymentMethodHandler.cs - Search handler → Payment repository contract: searches
SalesManagement.Handler/Queries/SearchPaymentMethodHandler.cs - Create handler → Payment response DTO: returns DTO
SalesManagement.Handler/Commands/CreatePaymentMethodHandler.cs - Search handler → Payment response DTO: maps results
SalesManagement.Handler/Queries/SearchPaymentMethodHandler.cs - Payment repository → Payment repository contract: implements
SalesManagement.Repository/Implementations/PaymentMethodRepository.cs - Payment repository → Database context: uses context
SalesManagement.Repository/Implementations/PaymentMethodRepository.cs - Database context → Payment method aggregate: stores entities
SalesManagement.Repository/Data/AppDbContext.cs - Database context → Sales database: persists data
- Login command → Login response: references response
AuthManagement.DTOs/Commands/LoginCommand.cs - Register command → Registration response: references response
AuthManagement.DTOs/Commands/RegisterUserCommand.cs