How leoxramadani/technicalassignment works
This is a .NET REST API for insurance claims and covers. Clients call the controllers; application services perform CRUD, cover creation computes a premium, and create/delete operations enqueue audit events. The audit worker batches queued events into SQL Server, while claims and covers use the primary MongoDB-backed context. Validation is applied at the API boundary. The README documents further rules and endpoint behavior; source excerpts establish the main service, persistence, and audit wiring, but not every validator or database configuration detail.
Main entry points: CoversService.cs Covers service · ClaimsService.cs Claims service · ValidationFilter.cs Validation filter · ClaimsController.cs Claims controller
Components 22
HTTP API
- Claims controller
Claims.Api/Controllers/ClaimsController.cs - Covers controller
Claims.Api/Controllers/CoversController.cs - Validation filter
Claims.Api/Filters/ValidationFilter.cs
Application workflows
- Claim validator
Claims.Application/Claims/ClaimServiceValidator.cs - Cover validator
Claims.Application/Covers/CoverRegistrationValidator.cs - Claims service
Claims.Application/Claims/ClaimsService.cs - Covers service
Claims.Application/Covers/CoversService.cs - Claims context interface
Claims.Application/Common/Interfaces/IClaimsContext.cs - Audit queue interface
Claims.Application/Auditing/IAuditQueue.cs - Audit event
Claims.Application/Auditing/AuditMessage.cs
Domain logic
- Premium interface
Claims.Domain/Services/IPremiumComputationService.cs - Premium computation
Claims.Domain/Services/PremiumComputationService.cs - Claim records
Claims.Domain/Entities/Claim.cs - Cover records
Claims.Domain/Entities/Cover.cs
Persistence and auditing
- Claims context
Claims.Infrastructure/Persistence/ClaimsContext.cs - MongoDB
- In-memory audit queue
Claims.Infrastructure/Auditing/AuditQueue.cs - Audit background worker
Claims.Infrastructure/Auditing/AuditBackgroundService.cs - Audit persistence service
Claims.Infrastructure/Auditing/Auditer.cs - Audit context
Claims.Infrastructure/Persistence/AuditContext.cs - SQL Server
Other components
- API client
Connections 23
- API client → Claims controller: sends requests
- API client → Covers controller: sends requests
- Claims controller → Claims service: dispatches CRUD
- Covers controller → Covers service: dispatches CRUD
- Claims controller → Validation filter: applies filter
- Covers controller → Validation filter: guards compute
- Validation filter → Claim validator: validates claims
- Validation filter → Cover validator: validates covers
- Claims service → Claims context interface: queries and saves
- Covers service → Claims context interface: queries and saves
- Claims context interface → Claims context: implemented by
- Claims context → MongoDB: reads and writes
- Claims service → Audit queue interface: enqueues events
- Covers service → Audit queue interface: enqueues events
- Claims service → Audit event: creates event
- Covers service → Audit event: creates event
- Covers service → Premium interface: computes premium
- Premium interface → Premium computation: implemented by
- Audit queue interface → In-memory audit queue: implemented by
- Audit background worker → In-memory audit queue: dequeues batches
- Audit background worker → Audit persistence service: dispatches batches
- Audit persistence service → Audit context: persists audits
- Audit context → SQL Server: writes audit data