Files
mapo-core/AGENTS.md
T
2026-05-29 08:33:43 +02:00

25 lines
1.6 KiB
Markdown

# MAPO-CORE Agent Instructions
## Core Context
- **Primary Goal**: Optimization and refactoring of the `MP-SPEC.sln` solution, focusing on migrating legacy Redis/DB caching to `FusionCache` (Memory + Redis + DB) in `MP.SPEC\Data\MpDataService.cs`.
- **Language**: C# (primary), PowerShell (scripts).
- **Documentation/Comments**: MUST be in **Italiano**.
- **Code Style**: Maintain existing region organization (`#region Public Methods`, etc.).
- **Reference Docs**: See `Refactor_Plan.md` for the current migration status and detailed strategy.
## Development Workflow
- **Build & Verification**:
- Use `./build_all_par.ps1 --agent` to build all solutions silently.
- Always verify that changes do not leave partial traces of old classes that break compilation.
- **Refactoring Strategy (`MpDataService.cs`)**:
- Use `GetOrFetchAsync<T>(string operationName, string cacheKey, Func<Task<T>> fetchFunc, TimeSpan expiration, params string[] tags)` as the standard for all data access.
- Target methods currently using manual `redisDb.StringGetAsync` / `StringSetAsync` patterns.
- **Testing**:
- Check the codebase for existing testing patterns before proposing new ones.
## Architecture Notes
- **Multi-Layer Caching**: The system is transitioning from a dual-layer (Redis + DB) to a triple-layer approach via `IFusionCache`.
- **Service Responsibility**: `MpDataService` is the central hub for data access, interacting with `MpSpecController` (EFCore) and `MpMongoController` (MongoDB).
- **Key Management**: Cache keys are heavily managed via `Utils.redis...` constants. Use these to prevent key mismatches.