Ho un requisito in cui devo convalidare il file excel prima di importarlo nell'applicazione. Il file di Excel avrà circa 15-20 colonne definite. E abbiamo circa 200-250 regole per convalidare il file excel.
Al momento, c'è un servizio Windows, che sta analizzando le directory per elaborare questi file Excel. il servizio Windows può elaborare più file usando multi-thread. Ma il singolo file sarà validato solo riga per riga. Attualmente le convalide sono state scritte in una sola classe usando i metodi.
Al momento funziona bene, ma ora stiamo ricevendo le necessarie modifiche alle regole e alle convalide e voglio rendere le regole e la convalida configurabili e più gestibili.
Esempi di regole:
- Non dovrebbero esserci valori vuoti.
- Controlla la lunghezza massima e minima
- Formati data
- Se il valore è presente in una colonna, il valore di altre colonne correlate dovrebbe essere vuoto.
Le mie domande sono:
- Come rendere configurabili le regole e la convalida? Ho controllato Enterprise Library Validation Block. Quale potrebbe essere usato usando la configurazione XML. Ma sento che non sarà mantenibile andando avanti.
- Come rendere le regole e la convalida attivate e disattivate al volo senza modifiche e codice e compilazione? Voglio ottenere un design un po 'come SonarQube Rules and Validation.
- In questo momento, l'elaborazione di più file multipli è in corso di elaborazione. È corretto elaborare anche singoli record di file paralleli? Non credo che aumenterà le prestazioni come tutti i thread utilizzati per l'elaborazione di più file.
- Qualche modello di progettazione per questo tipo di problema? Penso che sia possibile utilizzare Rules Pattern insieme al tipo di progettazione Pipeline.