Ho un "nodo" di endpoint che dovrebbe accettare un'entità. Questa entità può contenere diverse sub-entità con ancora alcune sub-entità. Poiché si tratta di un endpoint di "importazione", alcune delle entità o sub-entità possono esistere dalle importazioni precedenti, alcune potrebbero non esserlo, altre sono obbligatorie e altre no. Alcuni hanno regole speciali (ex email non può essere duplicata dell'email di altre entità) e così via.
Esiste una tecnica, un pattern o un algoritmo che rende questo codice più semplice da scrivere in modo pulito? Ogni volta che c'è un bug in questa logica dobbiamo aggiungere un altro o più "se" e sta diventando piuttosto fuori controllo.
Sto pensando; questo è fondamentalmente un albero con regole in alcuni nodi e foglie. Ci potrebbe essere qualcosa di intelligente là fuori che non lo sappiamo.
Potrebbe non essere importante, ma questa è un'API Web ASP.Net con Enity Framework che funge da ORM verso un database relazionale SQL
Aggiornamento 1
Questa è una bozza di ciò che sto trattando strutturalmente.
L'importazione riceve un elenco di utenti con tutte le subentità collegate.
{
users:[
{
prop1: value1,
prop2: value2,
company
{
prop1: value1
},
...,
},{..}
]
}
Tutte le entità in questa struttura hanno diverse proprietà di tipo valore. Con la funzione di importazione che deve gestire tutti i casi delle entità in entrata esistenti nel db o meno, e collegarli all'entità corretta tramite la relazione FK.
Quello che sto vedendo ora è forse che questo non è un albero, più un grafico o un grafico diretto?
Non so se questo extra bit è d'aiuto, ma penso che offra un po 'di più il problema. Tieni presente che non sono davvero alla ricerca di una soluzione reale a questo problema. Ciò che mi infastidisce di più è che questo deve essere un problema che molti sviluppatori incontrano in un modo o nell'altro. Sono curioso di sapere se ci sono dei modi intelligenti per affrontare questo?