Files
mapo-core/MP.SPEC/refactor_repository.md
T

3.2 KiB

Refactoring Repository: Decomposizione MpSpecController - STATO COMPLETO

Progetto Build Errori
MP.Data OK 0
MP.SPEC OK 0

Repository Creati (8 nuovi)

# Repository Interfaccia Metodi DbContext
1 Anag IAnagRepository 26 MoonProContext
2 Production IProductionRepository 32 MoonProContext
3 Dossier IDossierRepository 6 MoonPro_FluxContext
4 FluxLog IFluxLogRepository 3 MoonPro_FluxContext
5 System ISystemRepository 7 MoonProContext + MoonProAdminContext
6 MpVoc IMpVocRepository 3 MoonPro_VocContext
7 MpMon IMpMonRepository 4 MoonProContext
8 MpLand IMpLandRepository 6 MoonProContext

Sostituzioni dbController Completate

File Originale Sostituito con Chiamate Stato
MpDataService.cs 5 repository (Anag, System, Dossier, FluxLog, Production) ~90 Completato
TranslateSrv.cs IMpVocRepository 7 Completato
StatusData.cs IMpMonRepository 10 Completato
LandDataService.cs IMpLandRepository 9 Completato
OrderDataSrv.cs System + Production 2 Completato
ListSelectDataSrv.cs System + Production 4 Completato

Architettura DI (DataServiceCollectionExtensions.cs)

// Repository Scoped
services.TryAddScoped<IAnagRepository, AnagRepository>();
services.TryAddScoped<IProductionRepository, ProductionRepository>();
services.TryAddScoped<IDossierRepository, DossierRepository>();
services.TryAddScoped<IFluxLogRepository, FluxLogRepository>();
services.TryAddScoped<ISystemRepository, SystemRepository>();
services.TryAddScoped<IMpMonRepository, MpMonRepository>();
services.TryAddScoped<IMpVocRepository, MpVocRepository>();
services.TryAddScoped<IMpLandRepository, MpLandRepository>();

File Modificati

  • MP.Data/DataServiceCollectionExtensions.cs (+10/-1)
  • MP.Data/Services/LandDataService.cs (+10/-10)
  • MP.Data/Services/MonDataFeeder.cs (+1/-1)
  • MP.Data/Services/StatusData.cs (+12/-12)
  • MP.Data/Services/TabDataFeeder.cs (+1/-1)
  • MP.Data/Services/TranslateSrv.cs (+13/-13)
  • MP.SPEC/Data/MpDataService.cs (+1/-3)

File Nuovi (6)

  • MP.Data/Repository/MpLand/IMpLandRepository.cs
  • MP.Data/Repository/MpLand/MpLandRepository.cs
  • MP.Data/Repository/MpMon/IMpMonRepository.cs
  • MP.Data/Repository/MpMon/MpMonRepository.cs
  • MP.Data/Repository/MpVoc/IMpVocRepository.cs
  • MP.Data/Repository/MpVoc/MpVocRepository.cs

Verifiche

  • Nessun riferimento a dbController.XXX() nei file di servizio
  • ArticleWithDossierAsync esportato correttamente (rimossi #if false)
  • VocabolarioGetLang reso sincrono (firma originale sincrona)
  • tryLoadIobTags in StatusData usa GetAwaiter().GetResult() (contesto sync)
  • InitDict in TranslateSrv usa GetAwaiter().GetResult() (contesto sync)

MpSpecRepository (MpSpecController)

I metodi原价 sono ancora visibili nel file ma:

  • Non sono usati dai layer superiori (tutti migrati ai repository)
  • Possono essere spostati a #if false come ultima fase di pulizia
  • Rimangono come fallback documentato