The system follows a microservices architecture with clear separation of concerns:
1. EGU.PartnerPortal.Web - Blazor WebAssembly frontend
2. EGU.PartnerPortal.ApiService - Core business API
3. EGU.PartnerPortal.IntegrationServiceAPI - External system integration
4. EGU.PartnerPortal.AppHost - .NET Aspire orchestration
5. EGU.PartnerPortal.Shared - Common utilities and DTOs
6. EGU.PartnerPortal.ServiceDefaults - Shared service configurations
Service-Oriented Architecture
┌─────────────────┐
│ Presentation │ ← Blazor Components, Pages
├─────────────────┤
│ Application │ ← Controllers, API Services
├─────────────────┤
│ Business │ ← Validation, Mapping, Domain Logic
├─────────────────┤
│ Data Access │ ← Entity Framework, DbContext
├─────────────────┤
│ Integration │ ← External API Services, SOAP
└─────────────────┘
// Service Registration Example (Program.cs)
builder.Services.AddScoped<IWorkOrderApiService, WorkOrderApiService>();
builder.Services.AddScoped<IWorkOrderValidationService, WorkOrderValidationService>();
builder.Services.AddScoped<IWorkOrderMapperService, WorkOrderMapperService>();
Services/
├── WorkOrder/
│ ├── ApiServices/
│ │ ├── WorkOrderApiService.cs
│ │ └── Interfaces/
│ │ └── IWorkOrderApiService.cs
│ ├── ValidationServices/
│ │ ├── WorkOrderValidationService.cs
│ │ └── Interfaces/
│ │ └── IWorkOrderValidationService.cs
│ └── MapperServices/
│ ├── WorkOrderMapperService.cs
│ └── Interfaces/
│ └── IWorkOrderMapperService.cs