Playwright start
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Application Services
|
||||
|
||||
The project relies heavily on dependency injection to provide specialized services. These are split into game-logic services (`Immortal`) and infrastructure services (`Website`).
|
||||
|
||||
## Game Logic Services (`Services.Immortal`)
|
||||
|
||||
- **IBuildOrderService (`BuildOrderService`)**: Manages build order creation, editing, and calculations.
|
||||
- **IEconomyService (`EconomyService`)**: Handles calculations related to resource generation and expenditure.
|
||||
- **IEconomyComparisonService (`EconomyComparisonService`)**: Compares different economic scenarios.
|
||||
- **IEntityFilterService (`EntityFilterService`)**: Provides logic for filtering game entities based on various criteria.
|
||||
- **IImmortalSelectionService (`ImmortalSelectionService`)**: Manages the current selection of the "Immortal" (faction/hero).
|
||||
- **ITimingService (`TimingService`)**: Calculates timings for unit production and upgrades.
|
||||
- **IMemoryTesterService (`MemoryTesterService`)**: Supports the memory tester mini-game.
|
||||
|
||||
## Infrastructure Services (`Services.Website`)
|
||||
|
||||
- **IStorageService (`StorageService`)**: Wraps LocalStorage to provide persistent state management for the application.
|
||||
- **INavigationService (`NavigationService`)**: Manages application-level navigation and state.
|
||||
- **ISearchService (`SearchService`)**: Powers the global search functionality.
|
||||
- **IEntityDialogService (`EntityDialogService`)**: Controls the display of unit/building detail dialogs via portals.
|
||||
- **IMyDialogService (`MyDialogService`)**: A wrapper around MudBlazor's dialog service for simplified use.
|
||||
- **IToastService (`ToastService`)**: Provides a unified way to show notifications (toasts).
|
||||
- **IDataCollectionService (`DataCollectionService`)**: Handles anonymous usage analytics.
|
||||
- **IPermissionService (`PermissionService`)**: Manages user permissions or experimental feature toggles.
|
||||
|
||||
## Service Registration
|
||||
|
||||
All services are registered in `Program.cs`. Example:
|
||||
```csharp
|
||||
builder.Services.AddScoped<IBuildOrderService, BuildOrderService>();
|
||||
builder.Services.AddScoped<IStorageService, StorageService>();
|
||||
```
|
||||
In Blazor WebAssembly, `AddScoped` effectively acts as a singleton for the session.
|
||||
Reference in New Issue
Block a user