Exemplo n.º 1
0
        protected override System.Collections.Generic.IEnumerable <ReportMapRowProperty> GenerateReportRows(System.Data.DataSet dataSet, HeaderColumnCollection reportHeader)
        {
            List <ReportMapRowProperty> rows = new List <ReportMapRowProperty>();

            //PALUMBO: modifica per fornire nell'export la descrizione del destinatario in caso di trasmissione per interoperabilita IS
            string dest    = null;
            string pattern = "^(([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5}){1,25})+([;](([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5}){1,25})+)*$";

            DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert iDc = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();

            foreach (DataRow row in dataSet.Tables[0].Rows)
            {
                // Riga da aggiungere al report
                ReportMapRowProperty reportRow = new ReportMapRowProperty();

                // Creazione della riga
                foreach (DataColumn dataColumn in row.Table.Columns)
                {
                    // Se bisogna esportare il campo, viene aggiunta una colonna
                    if (reportHeader[dataColumn.ColumnName].Export)
                    {
                        //PALUMBO: modifica per fornire nell'export la descrizione del destinatario in caso di trasmissione per interoperabilita IS
                        if ((dataColumn.ColumnName.Equals("DESTINATARIO")) && (!System.Text.RegularExpressions.Regex.Match(row[dataColumn].ToString(), pattern).Success))
                        {
                            dest = iDc.GetDestinatarioPerIs(row[dataColumn].ToString());
                            reportRow.Columns.Add(new ReportMapColumnProperty()
                            {
                                DataType     = reportHeader[dataColumn.ColumnName].DataType,
                                Value        = dest,
                                OriginalName = dataColumn.ColumnName
                            });
                        }
                        else if ((dataColumn.ColumnName.Equals("TIPO")) && (row[dataColumn].ToString().Contains("errore-consegna")))
                        {
                            reportRow.Columns.Add(new ReportMapColumnProperty()
                            {
                                DataType     = reportHeader[dataColumn.ColumnName].DataType,
                                Value        = "mancata-consegna",
                                OriginalName = dataColumn.ColumnName
                            });
                        }
                        else
                        {
                            reportRow.Columns.Add(new ReportMapColumnProperty()
                            {
                                DataType     = reportHeader[dataColumn.ColumnName].DataType,
                                Value        = row[dataColumn].ToString(),
                                OriginalName = dataColumn.ColumnName
                            });
                        }
                    }
                }
                rows.Add(reportRow);
            }

            return(rows);
        }
Exemplo n.º 2
0
        public static TipoNotifica ricercaTipoNotificaByCodice(string codiceNotifica)
        {
            TipoNotifica retval = null;

            DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
            try
            {
                retval = daticertDB.ricercaTipoNotificheByCodice(codiceNotifica);
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }
Exemplo n.º 3
0
        public static Notifica[] ricercaNotificheFiltrate(DocsPaVO.filtri.FiltroRicerca [] filtri)
        {
            Notifica[] notifica = null;

            try
            {
                DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
                notifica = daticertDB.ricercaNotificheFiltrate(filtri);
                //BusinessLogic.interoperabilita.InteroperabilitaManager.ricercaNotifiche(docnumber);
            }
            catch (Exception e)
            {
                logger.Error("errore nella ricerca delle notifiche" + e.Message);
                notifica = new Notifica[0];
            }

            return(notifica);
        }
Exemplo n.º 4
0
        public static bool deleteNotifica(string docnumber)
        {
            bool retval = false;

            DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
            try
            {
                if (!string.IsNullOrEmpty(docnumber))
                {
                    retval = daticertDB.deleteNotifica(docnumber);
                }
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }
Exemplo n.º 5
0
        public static bool inserimentoTipoNotifica(string codiceNotifica)
        {
            bool retval = false;

            DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
            TipoNotifica tipoNotifica = new TipoNotifica();

            tipoNotifica.codiceNotifica      = codiceNotifica;
            tipoNotifica.descrizioneNotifica = "email di " + codiceNotifica;

            try
            {
                retval = daticertDB.inserisciTipoNotifica(tipoNotifica);
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Inseriemente nella tabella notifica
        /// </summary>
        /// <param name="notifica"></param>
        /// <returns></returns>
        public static bool inserimentoNotifica(Notifica notifica, string IdAllegato)
        {
            bool retval = false;

            try
            {
                DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
                retval = daticertDB.inserisciNotifica(notifica, IdAllegato);
                // PEC 4 Modifica Maschera Caratteri
                if (retval)
                {
                    bool aggiornaSMask = AggiornaStatusMask(notifica);
                }
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }
Exemplo n.º 7
0
        public static bool updateNotificaRisposte(Daticert daticert, int indiceRisposte)
        {
            bool retval = false;

            DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
            Notifica notifica = new Notifica();

            notifica = (Notifica)daticert;

            notifica.risposte = daticert.risposteLst[indiceRisposte];

            try
            {
                retval = daticertDB.inserisciNotifica(notifica, null);
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }
Exemplo n.º 8
0
        /// <summary>
        /// inserimento nella tabella notifica indicando il tipo di notifica e il destinatario da inserire
        /// </summary>
        /// <param name="daticert"></param>
        /// <param name="systemIdTipoNotifica"></param>
        /// <param name="indiceDestinatari"></param>
        /// <returns></returns>
        public static bool inserimentoNotifica(Daticert daticert, string systemIdTipoNotifica, int indiceDestinatari, string IdAllegato)
        {
            bool retval = false;

            try
            {
                DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
                if (daticert == null)
                {
                    return(retval);
                }

                Notifica notifica = new Notifica();
                notifica = (Notifica)daticert;

                #region controllo sui dati immessi

                if (!string.IsNullOrEmpty(systemIdTipoNotifica))
                {
                    notifica.idTipoNotifica = systemIdTipoNotifica;
                }
                else
                {
                    return(retval);
                }


                if (daticert.destinatarioLst.Length > 0 &&
                    daticert.tipoDestinatarioLst.Length > 0)
                {
                    notifica.destinatario     = daticert.destinatarioLst[indiceDestinatari];
                    notifica.tipoDestinatario = daticert.tipoDestinatarioLst[indiceDestinatari];
                }
                else
                {
                    return(retval);
                }

                if (!string.IsNullOrEmpty(daticert.giorno) &&
                    !string.IsNullOrEmpty(daticert.ora))
                {
                    notifica.data_ora = daticert.giorno + " " + daticert.ora;
                }
                else
                {
                    return(retval);
                }

                if (daticert.risposteLst != null &&
                    daticert.risposteLst.Length > 0)
                {
                    notifica.risposte = daticert.risposteLst[0];
                }
                else
                {
                    return(retval);
                }

                #endregion
                //inseriemnto dei dati
                retval = daticertDB.inserisciNotifica(notifica, IdAllegato);
                //PEC 4 Modifica Maschera Caratteri
                if (retval)
                {
                    bool aggiornaMaschera = AggiornaStatusMask(notifica);
                }
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }
Exemplo n.º 9
0
        /// <summary>
        /// PEC 4 Modifica Maschera Caratteri
        /// Metodo di aggiornamento della status mask a partire dalla notifica.
        ///
        /// </summary>
        /// <returns></returns>
        public static bool AggiornaStatusMask(Notifica notifica)
        {
            bool retval = false;

            logger.Debug("Inserita la notifica, aggiorno la status-mask");
            try
            {
                // eliminareEccezione: quando l'esito è OK, elimino una possibile eccezione preesistente.
                bool eliminareEccezione = false;
                DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert interop = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
                TipoNotifica tipoNot = interop.ricercaTipoNotificheBySystemId(notifica.idTipoNotifica);
                DocsPaVO.StatoInvio.StatoInvio statoInvio = interop.getStatoInvioFromAddressAndProfile(notifica.destinatario, notifica.docnumber);
                if (statoInvio != null)
                {
                    string statusmask = "";
                    if (!string.IsNullOrEmpty(statoInvio.statusMask))
                    {
                        statusmask = statoInvio.statusMask;
                        char[] status_c_mask = statusmask.ToCharArray();

                        if (tipoNot.codiceNotifica == "accettazione")
                        {
                            status_c_mask[1] = 'V';
                            if (statoInvio.tipoCanale == "MAIL")
                            {
                                if (notifica.tipoDestinatario == "certificato")
                                {
                                    if (status_c_mask[2] != 'V' || status_c_mask[2] == 'A' || status_c_mask[2] == 'N')
                                    {
                                        status_c_mask[2] = 'A';
                                    }
                                }
                                else
                                {
                                    status_c_mask[0]   = 'V';
                                    eliminareEccezione = true;
                                }
                            }
                        }
                        else if (tipoNot.codiceNotifica == "non-accettazione")
                        {
                            status_c_mask[0] = 'X';
                            status_c_mask[1] = 'X';
                            status_c_mask[2] = 'N';
                            status_c_mask[3] = 'N';
                            status_c_mask[4] = 'N';
                            status_c_mask[5] = 'N';
                            status_c_mask[6] = 'N';
                        }
                        else if (tipoNot.codiceNotifica == "DSN" || tipoNot.codiceNotifica == "errore")
                        {
                            status_c_mask[0] = 'X';
                            status_c_mask[2] = 'X';
                            status_c_mask[3] = 'N';
                            status_c_mask[4] = 'N';
                            status_c_mask[5] = 'N';
                            status_c_mask[6] = 'V';
                        }
                        else if (tipoNot.codiceNotifica == "avvenuta-consegna")
                        {
                            status_c_mask[2] = 'V';
                            status_c_mask[6] = 'X';
                            if (statoInvio.tipoCanale == "MAIL")
                            {
                                status_c_mask[0]   = 'V';
                                eliminareEccezione = true;
                            }
                        }
                        else if (tipoNot.codiceNotifica == "errore-consegna" || tipoNot.codiceNotifica == "preavviso-errore-consegna")
                        {
                            status_c_mask[0] = 'X';
                            status_c_mask[2] = 'X';
                            status_c_mask[3] = 'N';
                            status_c_mask[4] = 'N';
                            status_c_mask[5] = 'N';
                            status_c_mask[6] = 'N';
                            InteroperabilitaEccezioni.AggiornaDpa_StatoInvioConEccezione(notifica.destinatario, notifica.docnumber, "Errore di consegna verso la casella PEC.");
                        }
                        statusmask = new string(status_c_mask);
                    }
                    else
                    {
                        if (tipoNot.codiceNotifica == "accettazione")
                        {
                            if (statoInvio.tipoCanale == "MAIL")
                            {
                                if (notifica.tipoDestinatario == "certificato")
                                {
                                    statusmask = "AVANNNN";
                                }
                                else
                                {
                                    statusmask         = "VVNNNNN";
                                    eliminareEccezione = true;
                                }
                            }
                        }
                        else if (tipoNot.codiceNotifica == "non-accettazione")
                        {
                            statusmask = "XXNNNNN";
                        }
                        else if (tipoNot.codiceNotifica == "DSN" || tipoNot.codiceNotifica == "errore")
                        {
                            statusmask = "XVXNNNV";
                        }
                        else if (tipoNot.codiceNotifica == "avvenuta-consegna")
                        {
                            statusmask = "AVVAAAN";
                            if (statoInvio.tipoCanale == "MAIL")
                            {
                                statusmask         = "VVVNNNN";
                                eliminareEccezione = true;
                            }
                        }
                        else if (tipoNot.codiceNotifica == "errore-consegna" || tipoNot.codiceNotifica == "preavviso-errore-consegna")
                        {
                            statusmask = "XVXNNNN";
                            InteroperabilitaEccezioni.AggiornaDpa_StatoInvioConEccezione(notifica.destinatario, notifica.docnumber, "Errore di consegna verso la casella PEC.");
                        }
                    }
                    interop.AggiornaStatusMaskFromAddressAndProfile(notifica.destinatario, notifica.docnumber, statusmask, eliminareEccezione);
                }
                else
                {
                    logger.Debug("Stato invio non trovato");
                }
            }
            catch (Exception ex)
            {
                logger.ErrorFormat("Errore nell'aggiornamento della status mask: Messaggio {0} - StackTrace {1}", ex.Message, ex.StackTrace);
                retval = false;
            }

            return(retval);
        }
Exemplo n.º 10
0
        /// <summary>
        /// verifica se uan ricevuta è già stata associata al documento
        /// </summary>
        /// <param name="daticert"></param>
        /// <param name="systemIdTipoNotifica"></param>
        /// <param name="indiceDestinatari"></param>
        /// <returns></returns>
        public static bool verificaPresenzaNotifica(Daticert daticert, string systemIdTipoNotifica)
        {
            bool retval = false;

            logger.Debug("Inserimento notifica");
            try
            {
                DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert daticertDB = new DocsPaDB.Query_DocsPAWS.InteroperabilitaDatiCert();
                if (daticert == null)
                {
                    return(retval);
                }

                Notifica notifica = new Notifica();
                notifica = (Notifica)daticert;

                #region controllo sui dati immessi

                if (!string.IsNullOrEmpty(systemIdTipoNotifica))
                {
                    notifica.idTipoNotifica = systemIdTipoNotifica;
                }
                else
                {
                    return(retval);
                }

                logger.Debug("Controllo destinatari");

                logger.Debug("Controllo giorno");
                if (!string.IsNullOrEmpty(daticert.giorno) &&
                    !string.IsNullOrEmpty(daticert.ora))
                {
                    notifica.data_ora = daticert.giorno + " " + daticert.ora;
                }
                else
                {
                    return(retval);
                }

                logger.Debug("Controllo risposte");
                if (daticert.risposteLst != null &&
                    daticert.risposteLst.Length > 0)
                {
                    notifica.risposte = daticert.risposteLst[0];
                }
                else
                {
                    return(retval);
                }

                #endregion
                //inseriemnto dei dati
                retval = daticertDB.verificaPresenzaNotifica(notifica);
            }
            catch (Exception e)
            {
                logger.Error("errore durante l'inserimento del tipo di notifica - errore: " + e.Message);
            }

            return(retval);
        }