public static bool ModNotaInElenco(InfoUtente infoUtente, NotaElenco nota, out string message) { bool returnResult = false; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { returnResult = GetInstanceDb(infoUtente).ModNotaInElenco(nota, out message); transactionContext.Complete(); } return(returnResult); }
private static bool CheckDataValidity(NotaElenco nota, out List <String> notValidData, ArrayList listaRF) { // La lista con gli errori da restituire List <String> problems = new List <string>(); // Il risultato del controllo di validità bool validationResult = true; problems.Add("Nota non inserita in elenco"); // Il codice rf è obbligatorio if (String.IsNullOrEmpty(nota.codRegRf)) { validationResult = false; problems.Add("Campo 'Codice RF' obbligatorio."); } // La descrizione è obbligatoria if (String.IsNullOrEmpty(nota.descNota)) { validationResult = false; problems.Add("Campo 'Descrizione nota' obbligatorio."); } // verifica se il ruolo dell'utente ha visibilità sull'rf a cui si vuole assocliare la nota bool RfVisibile = false; for (int i = 0; i < listaRF.Count; i++) { if (nota.idRegRf == ((DocsPaVO.utente.Registro)listaRF[i]).systemId) { RfVisibile = true; break; } } // RF visibile al ruolo dell'utente if (!RfVisibile) { validationResult = false; problems.Add("Rf non visibile al ruolo."); } if (validationResult) { problems.Remove("Nota non inserita in elenco"); } // Impostazione della lista di problemi di vlaidazione notValidData = problems; // Restituzione del risultato della validazione return(validationResult); }
/// <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); }