Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
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);
        }