pre-update descrizioni
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using MP.Core.DTO;
|
||||
using MP.Core.Objects;
|
||||
using MP.Data.DbModels;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MP.Data.Repositories
|
||||
{
|
||||
public interface IAnagRepository
|
||||
{
|
||||
Task<AnagCountersModel> AnagCountersGetNextAsync(string cntType);
|
||||
Task<List<vSelEventiBCodeModel>> AnagEventiGeneralAsync();
|
||||
Task<bool> AnagGruppiDeleteAsync(AnagGruppiModel updRec);
|
||||
Task<bool> AnagGruppiUpsertAsync(AnagGruppiModel UpdRec);
|
||||
Task<List<ListValuesModel>> AnagStatiCommAsync();
|
||||
Task<List<ListValuesModel>> AnagTipoArtLvAsync();
|
||||
Task<List<string>> ArticleWithDossierAsync();
|
||||
Task<int> ArticoliCountSearchAsync(string tipo = "*", string azienda = "*", string searchVal = "");
|
||||
Task<List<AnagArticoliModel>> ArticoliGetByTipoAsync(string tipo, string azienda = "*");
|
||||
Task<List<AnagArticoliModel>> ArticoliGetSearchAsync(int numRecord, string tipoArt, string azienda, string searchVal);
|
||||
Task<List<AnagArticoliModel>> ArticoliInKitAsync();
|
||||
Task<bool> ArticoliDeleteRecord(AnagArticoliModel currRec);
|
||||
Task<bool> ArticoliUpdateRecord(AnagArticoliModel currRec);
|
||||
Task<List<ListValuesModel>> ListValuesFiltAsync(string tabName, string fieldName);
|
||||
Task<List<MacchineModel>> MacchineByMatrOper(int MatrOpr);
|
||||
Task<List<MacchineModel>> MacchineGetFiltAsync(string codGruppo);
|
||||
Task<Dictionary<string, string>> VocabolarioGetLang(string lingua);
|
||||
Task<bool> VocabolarioUpsertAsync(VocabolarioModel upsRec);
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<RootNamespace>MP.SPEC</RootNamespace>
|
||||
<Version>8.16.2606.109</Version>
|
||||
<Version>8.16.2606.113</Version>
|
||||
<UserSecretsId>1800a78a-6ff1-40f9-b490-87fb8bfc1394</UserSecretsId>
|
||||
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>Modulo MAPOSPEC </i>
|
||||
<h4>Versione: 8.16.2606.109</h4>
|
||||
<h4>Versione: 8.16.2606.113</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
8.16.2606.109
|
||||
8.16.2606.113
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>8.16.2606.109</version>
|
||||
<version>8.16.2606.113</version>
|
||||
<url>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/MP.SPEC.zip</url>
|
||||
<changelog>https://nexus.steamware.net/repository/SWS/MP-SPEC/stable/LAST/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# ?? Proposta di Refactoring: Decomposizione MpSpecController
|
||||
|
||||
## 1. Situazione Attuale (AS-IS)
|
||||
* **Componente**: MpSpecController (situato in MP.Data\Controllers\).
|
||||
* **Pattern**: "God Object" / Monolithic Repository.
|
||||
* **Problemi identificati**:
|
||||
* **Violazione SRP**: Gestisce entità eterogenee (Anagrafiche, Produzione, Dossier, Configurazione, Log).
|
||||
* **Naming**: Il suffisso Controller è fuorviante (indica un livello API, mentre il ruolo è di Repository).
|
||||
* **Manutenibilità**: Elevato rischio di regressioni durante le modifiche a causa dell'accorpamento di logiche diverse.
|
||||
* **Testabilità**: Difficoltà estrema nel mockare le dipendenze (molteplici DbContext e parametri di configurazione) in un unico oggetto.
|
||||
* **Accoppiamento**: MpDataService dipende da un unico, enorme oggetto per ogni operazione di persistenza.
|
||||
|
||||
## 2. Situazione Proposta (TO-BE)
|
||||
* **Trasformazione**: MpSpecController viene rinominato in MpSpecRepository (come fallback o hub centrale temporaneo) e poi progressivamente svuotato.
|
||||
* **Nuova Architettura**: Introduzione di Repository specializzati per **Domini Logici**, ognuno con la propria interfaccia (I...Repository).
|
||||
* **Iniezione delle Dipendenze**: MpDataService smetterà di iniettare un unico repository e inizierà a iniettare solo i moduli di cui ha realmente bisogno (es. IAnagRepository, IProductionRepository, ecc.).
|
||||
* **Standardizzazione**: Ogni repository gestirà esclusivamente il proprio DbContext di riferimento.
|
||||
|
||||
## 3. Elenco Repository da Creare (Domain Grouping)
|
||||
|
||||
| Repository | Responsabilità (entità/Modelli) | Context Target |
|
||||
| :--- | :--- | :--- |
|
||||
| **IAnagRepository** | AnagGruppi, AnagArticoli, AnagOperatori, AnagStatiComm, AnagTipoArtLv, Vocabolario, Parametri | MoonProContext |
|
||||
| **IProductionRepository** | ODL, PODL, IstanzeKit, TemplateKit, WipKit, Macchine, Gruppi2Macc/Oper | MoonProContext |
|
||||
| **IDossierRepository** | Dossier, DossierFluxLog | MoonProContext |
|
||||
| **IFluxLogRepository** | FluxLog, StatDedupDTO, ParetoFluxLog | MoonPro_FluxContext |
|
||||
| **ISystemRepository** | LinkMenu, Config, Manutenzione DB | MoonProContext / MoonProAdminContext |
|
||||
|
||||
## 4. Checklist Avanzamento Modifiche
|
||||
|
||||
### Fase 1: Preparazione (Infrastruttura)
|
||||
- [ ] Creazione file
|
||||
efactor_repository.md.
|
||||
- [ ] Analisi delle interfacce necessarie per ogni dominio.
|
||||
- [ ] Rinomina MpSpecController $\rightarrow$ MpSpecRepository (per allineamento naming).
|
||||
|
||||
### Fase 2: Estrazione Modulare (Iterativa)
|
||||
- [ ] **Modulo Anagrafica**: Creazione AnagRepository $\rightarrow$ Spostamento metodi $\rightarrow$ Aggiornamento MpDataService.
|
||||
- [ ] **Modulo Produzione**: Creazione ProductionRepository $\rightarrow$ Spostamento metodi $\rightarrow$ Aggiornamento MpDataService.
|
||||
- [ ] **Modulo Dossier**: Creazione DossierRepository $\rightarrow$ Spostamento metodi $\rightarrow$ Aggiornamento MpDataService.
|
||||
- [ ] **Modulo FluxLog**: Creazione FluxLogRepository $\rightarrow$ Spostamento metodi $\rightarrow$ Aggiornamento MpDataService.
|
||||
- [ ] **Modulo Sistema**: Creazione SystemRepository $\rightarrow$ Spostamento metodi $\rightarrow$ Aggiornamento MpDataService.
|
||||
|
||||
### Fase 3: Pulizia e Verifica
|
||||
- [ ] Rimozione del codice residuo da MpSpecRepository.
|
||||
- [ ] Verifica della compilazione della soluzione (./build_all_par.ps1 --agent).
|
||||
- [ ] Verifica della coerenza dei log e della persistenza dei dati.
|
||||
Binary file not shown.
Reference in New Issue
Block a user