Exemplo n.º 1
0
 public static string[] GetElencoNote(string idRegistroRf, string prefixText)
 {
     string[] lista;
     using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
     {
         DocsPaDB.Query_DocsPAWS.Note note = new DocsPaDB.Query_DocsPAWS.Note();
         lista = note.GetElencoNote(idRegistroRf, prefixText);
         transactionContext.Complete();
     }
     return(lista);
 }
Exemplo n.º 2
0
        /// <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);
        }