public static String GetSystemIdRFDaDPA_EL_REGISTRI(string codiceRF) { using (DocsPaDB.Query_DocsPAWS.RF rfDb = new DocsPaDB.Query_DocsPAWS.RF()) { return(rfDb.getSystemIdRFDaDPA_EL_REGISTRI(codiceRF)); } }
/// <summary> /// Funzione per l'esecuzione dell'importazione delle note /// </summary> private static List <ImportResult> ExecuteImportNote(OleDbDataReader dataReader, ArrayList listaRf) { // Il risultato del controllo di validità dati per la riga in analisi bool validParameters = false; NotaElenco nota = null; List <ImportResult> importResult = new List <ImportResult>(); // Il numero delle note importate int importedNote = 0; // Il numero delle note non importate int notImportedNote = 0; // Il risultato dell'ultima operazione di creazione ImportResult temp = null; // La lista degli errori avvenuti in una delle fasi di creazione delle note List <string> creationProblems = null; // Se non ci sono note da importare, il report conterrà // una sola riga con un messaggio che informi l'utente if (!dataReader.HasRows) { importResult.Add(new ImportResult() { Outcome = ImportResult.OutcomeEnumeration.OK, Message = "Non sono state rilevate note da importare." }); } // Finchè ci sono dati da leggere while (dataReader.Read()) { // Reset variabili validParameters = false; nota = new NotaElenco(); creationProblems = new List <string>(); temp = new ImportResult(); //Prelevamento dei dati dalla riga xls attuale try { if (dataReader.GetName(0).ToUpper() == "Codice RF".ToUpper() && dataReader.GetName(1).ToUpper() == "Descrizione nota".ToUpper()) { DocsPaDB.Query_DocsPAWS.RF rf = new DocsPaDB.Query_DocsPAWS.RF(); //Recupero l'id del rf nota.idRegRf = rf.getSystemIdRFDaDPA_EL_REGISTRI(dataReader["Codice RF"].ToString().Trim()); nota.codRegRf = dataReader["Codice RF"].ToString().Trim(); nota.descNota = dataReader["Descrizione nota"].ToString().Trim(); } else { importResult.Add(new ImportResult() { Outcome = ImportResult.OutcomeEnumeration.KO, Message = "Nome colonne foglio excel errate" }); return(importResult); } } catch (Exception e) { importResult.Add(new ImportResult() { Outcome = ImportResult.OutcomeEnumeration.KO, Message = e.Message }); notImportedNote++; } //Messaggio nota: descrizione e rf temp.Message = nota.descNota + " --- " + nota.codRegRf; //Controllo validità campi obbligatori validParameters = CheckDataValidity(nota, out creationProblems, listaRf); // Se i parametri di creazione della nota sono tutti validi e popolati if (validParameters) { try { // Inserimento della nota string message = ""; DocsPaDB.Query_DocsPAWS.Note dbNota = new DocsPaDB.Query_DocsPAWS.Note(); dbNota.InsertNotaInElenco(nota, out message); if (!string.IsNullOrEmpty(message)) { // Prova inserimento nota in db fallita temp.Outcome = ImportResult.OutcomeEnumeration.KO; creationProblems.Add(message); temp.OtherInformation.AddRange(creationProblems); notImportedNote++; } else { // Altrimenti il risultato è positivo temp.Outcome = ImportResult.OutcomeEnumeration.OK; // Il messaggio è un messaggio di successo creationProblems.Add("Nota inserita in elenco"); temp.OtherInformation.AddRange(creationProblems); importedNote++; } importResult.Add(temp); } catch (Exception e) { // Viene creato un risultato negativo importResult.Add(new ImportResult() { Outcome = ImportResult.OutcomeEnumeration.KO, Message = e.Message }); notImportedNote++; } } else { // I parametri non sono validi o correttamente popolati: il risultato è negativo temp.Outcome = ImportResult.OutcomeEnumeration.KO; temp.OtherInformation.AddRange(creationProblems); notImportedNote++; importResult.Add(temp); } } // Aggiunta di un'ultima riga contenente il totale delle note importate e non importate importResult.Add(new ImportResult() { Outcome = ImportResult.OutcomeEnumeration.OK, Message = String.Format("Note importate: {0}; Note non importate: {1}", importedNote, notImportedNote) }); // Restituzione del report sui risultati return(importResult); }