This project follows a layered architecture to structure different components of the system. Below is an overview of the layers and their roles:
- Contains models and enums.
- No database annotations are included here.
- Includes
DbContext, external services, seeding mechanisms, and configuration. - Uses Fluent API for database models, annotations, and relationships.
- Repository implementations (no interfaces) are defined here.
- Contains extensions for Infrastructure Dependency Injection.
- Holds services and repository interfaces.
- Contains extensions for Services Dependency Injection.
- Implements the Mediator design pattern.
- Handles request/response cycles.
- Includes extensions for adding MediatR.
- Call The Application Services
- Handle Validtaions Od DTO (Command Or Query) Using FluentAPI
- Handle MiddleWare Validation
- The API layer that sends requests through the IMediator interface.
- Apply Generic Design Pattern
- Apply Mediator Design Pattern
- persistence ignorance principle