Table of Contents

IRequestDAL

Descor.RequestCenter.Interfaces.Ticket.IRequestDAL — contratto di accesso dati per il dominio Request/Ticket. Definisce l'insieme di letture e scritture della richiesta di servizio che il DAL Oracle deve implementare. Classificazione: VERIFIED.

Scopo

IRequestDAL è l'astrazione che disaccoppia il livello di business (Descor.RequestCenter.Ticket.Request) dallo specifico provider dati Oracle. Elenca ~246 membri Function: le letture (con doppio gemello DataSet + *DReader) e le scritture "add/set/close/delete" della richiesta. Il BL dipende da questo contratto, non dall'implementazione concreta.

Namespace e progetto

  • Namespace: Descor.RequestCenter.Interfaces.Ticket (dichiarazione Namespace Interfaces.Ticket dentro il RootNamespace Descor.RequestCenter). Classificazione: VERIFIED (TicketInterfaces.vb:6).
  • Progetto: RequestCenter — VB.NET, net48, RootNamespace Descor.RequestCenter (livello BL). ProjectReference a DataManager.
  • File: Interfaces/TicketInterfaces.vb; l'interfaccia inizia a riga 39.
  • Ereditarietà: Inherits IBaseDAL (TicketInterfaces.vb:40).

Responsabilità

  • Definire la firma di ogni operazione dati sulla richiesta senza legarsi al driver Oracle.
  • Imporre la convenzione dei gemelli di lettura: per ogni getX(...) As DataSet esiste getXDReader(...) As IDataReader (es. Load/LoadDReader, getRequestList/getRequestListDReader, getByProtocol/getByProtocolDReader). Classificazione: VERIFIED (TicketInterfaces.vb:42-116).
  • Includere le scritture del ciclo di vita del ticket: addRequest (2 overload), setProtocol, setTenant, setRequestDate, setSpatialInfo, setContact, setUser, setReference, setCost, setDescription, setManagementData, setContract, setCompany, setType, setCallType, setApproval, setWorkflowInterface, setCategory, setTypology, closeRequest, deleteRequest.

Perché esiste

UNKNOWN — la motivazione non è documentata. È osservabile solo il pattern di stratificazione per dominio (<Domain>{Interface,DAL,BL}) comune all'intera piattaforma, che colloca i contratti dati nel progetto BL RequestCenter e le implementazioni in RequestCenter.DAL.OracleODP.

Contratto pubblico

Membri raggruppati per famiglia (elenco non esaustivo; ~246 in totale):

Famiglia Membri rappresentativi Ritorno
Lettura singola Load, LoadDReader, getByProtocol(...), getRequestParent(...), getRequestParentId DataSet / IDataReader / Integer
Lettura lista getRequestList, getRequestListByAsset, getRequestListByIdOM, getRequestListByIdContract, getRequestListByIdManagement, getRequestListByIdCompany, getUserRequestList (+ gemelli *DReader) DataSet / IDataReader
Filtro composito getIdRequestListByFilter(...), getIdRequestListByFilterDReader(...) (~45 parametri + customfieldSQL As String) DataSet / IDataReader
Scrittura ciclo di vita addRequest (×2), setProtocol, setDescription, setWorkflowInterface, closeRequest, deleteRequest, … Integer

Molte firme accettano il parametro opzionale egroup As RequestCenter.Ticket.RequestCollection.Group = …All per filtrare per gruppo/visibilità. Classificazione: SUPPORTED (TicketInterfaces.vb:93-116).

Implementazioni o classi derivate

  • Descor.RequestCenter.DAL.OracleODP.RequestDAL (Implements IRequestDAL) — unica implementazione nota, backend Oracle ODP. Vedi class-RequestDAL.md.
  • Nota OracleODPXNET: l'implementazione è ri-collegata nel progetto net8.0 RequestCenter.DAL.OracleODPXNET (36/38 file, esclusi RequestCSDAL.vb e RequestCSReasonDAL.vb), con driver managed Oracle.ManagedDataAccess.Core; il contratto IRequestDAL resta invariato. Classificazione: SUPPORTED (spec di progetto XNET).

Non risultano altre implementazioni: l'assenza di ulteriori Implements IRequestDAL non è però dichiarabile come irraggiungibilità del contratto, poiché l'implementazione concreta è risolta a runtime (fabbrica/configurazione) — spec §30.

Dipendenze

  • IBaseDAL — interfaccia base ereditata (TicketInterfaces.vb:40).
  • System.Data (DataSet, IDataReader) — sotto net8.0 importato esplicitamente via #If NET5_0_OR_GREATER (TicketInterfaces.vb:1-3).
  • RequestCenter.Ticket.RequestCollection.Group — enum usato nei parametri di filtro.

Ciclo di vita

Interfaccia pura: nessuno stato. Le regole di apertura/chiusura connessione e di transazione sono responsabilità dell'implementazione (RequestDAL + GlobalDataManager).

Collaborazioni

Accesso al database

Indiretto: le procedure Oracle effettivamente invocate sono definite dall'implementazione. Per la mappa metodo→PACKAGE.PROC→tabella vedi class-RequestDAL.md e crud-matrix.md, procedures.md.

Autorizzazione

Non definita a livello di contratto. Classificazione: INFERRED.

Thread safety

N/A (interfaccia senza stato).

Esempio di utilizzo

Non eseguito (macOS, no Oracle Client). Il BL dipende da IRequestDAL e riceve l'istanza concreta RequestDAL; verificato staticamente.

Test correlati

Nessun test automatico nel repository. Copertura non dichiarata.

Flussi correlati

Regole di business correlate

Limitazioni

  • Il file TicketInterfaces.vb contiene anche altre interfacce (IProtocolDAL, TicketInterfaces.vb:8) e ampi blocchi di firme commentate (varianti getRequestListByFilter/getWorkflowElementsByFilter disattivate, TicketInterfaces.vb:45-60, 120-…): non fanno parte del contratto attivo.

Debito tecnico

Nessuno specifico dell'interfaccia rilevato.

Evidenze

  • InfocadWeb/WebMachine/RequestCenter/Interfaces/TicketInterfaces.vb:1-3 (guardia #If NET5_0_OR_GREATER / Imports System.Data), :6 (Namespace Interfaces.Ticket), :39-40 (Public Interface IRequestDAL / Inherits IBaseDAL).
  • TicketInterfaces.vb:42-43 (Load/LoadDReader), :61-80 (getIdRequestListByFilter/…DReader con customfieldSQL), :82-116 (famiglia get*/get*DReader).
  • Implementazione: InfocadWeb/WebMachine/RequestCenter.DAL.OracleODP/RequestDAL.vb:14 (Implements IRequestDAL).
  • Metadati: 246 Function nel blocco IRequestDAL; progetto RequestCenter.vbproj (RootNamespace Descor.RequestCenter, ProjectReference DataManager).