Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="statoInvio"></param>
        /// <returns></returns>
        private static DocsPaVO.StatoInvio.StatoInvio getDettagliCorrispondente(DocsPaVO.StatoInvio.StatoInvio statoInvio)
        {
            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
            return(doc.GetDettagliCorrispondente(statoInvio));

            #region Codice Commentato

            /*if (statoInvio.tipoCanale.Equals("E"))
             * {
             *      return statoInvio;
             * }
             * string queryString =
             *      "SELECT  VAR_FAX, VAR_INDIRIZZO, VAR_CAP, VAR_PROVINCIA, VAR_CITTA " +
             *      "FROM DPA_DETT_GLOBALI WHERE ID_CORR_GLOBALI= " + statoInvio.idCorrispondente;
             * logger.Debug(queryString);
             * IDataReader dr = db.executeReader(queryString);
             * if (dr.Read())
             * {
             *      if(statoInvio.tipoCanale.Equals("F"))
             *      {
             *              statoInvio.indirizzo = dr.GetValue(0).ToString();
             *      }
             *      else
             *      {
             *              statoInvio.indirizzo = dr.GetValue(1).ToString();
             *              statoInvio.cap = dr.GetValue(2).ToString();
             *              statoInvio.provincia = dr.GetValue(3).ToString();
             *              statoInvio.citta = dr.GetValue(4).ToString();
             *      }
             * }
             * dr.Close();
             * return statoInvio;*/
            #endregion
        }
Exemple #2
0
        /// <summary>
        /// PEC 4 Modifica Maschera Caratteri
        /// Servono alcuni dati della stato invio per aggiornare la maschera dello status durante l'inserimento delle notifiche
        /// </summary>
        /// <param name="address"></param>
        /// <param name="idProfile"></param>
        /// <returns></returns>
        public DocsPaVO.StatoInvio.StatoInvio getStatoInvioFromAddressAndProfile(string address, string idProfile)
        {
            DocsPaVO.StatoInvio.StatoInvio retval = null;
            //query cablata, da perfezionare
            DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_DPASI_STATUSMASK");
            q.setParam("idprofile", idProfile);
            q.setParam("address", address);
            string query = q.getSQL();

            logger.Debug(query);
            //string query = "select a.status_c_mask as statusmask, b.type_id as tipo from dpa_stato_invio a, documenttypes b where a.var_indirizzo='"+address+"' and a.id_profile="+idProfile+" and a.id_documenttype=b.system_id";
            using (IDataReader reader = ExecuteReader(query))
            {
                if (reader.FieldCount > 0)
                {
                    if (reader.Read())
                    {
                        retval            = new DocsPaVO.StatoInvio.StatoInvio();
                        retval.statusMask = reader["statusmask"].ToString();
                        retval.tipoCanale = reader["tipo"].ToString();
                    }
                }
            }

            return(retval);
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="statoInvio"></param>
        /// <returns></returns>
        public static DocsPaVO.StatoInvio.StatoInvio getDatiCorrispondente(DocsPaVO.StatoInvio.StatoInvio statoInvio)
        {
            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
            doc.GetDatiCorrispondente(ref statoInvio);
            return(statoInvio);

            #region Codice Commentato

            /*string queryString =
             *      "SELECT VAR_EMAIL, VAR_SMTP, NUM_PORTA_SMTP, CHA_PA, VAR_CODICE_AMM, VAR_CODICE_AOO " +
             *      "FROM DPA_CORR_GLOBALI WHERE SYSTEM_ID=" + statoInvio.idCorrispondente;
             * logger.Debug(queryString);
             * IDataReader dr = db.executeReader(queryString);
             * if (dr.Read())
             * {
             *      if(dr.GetValue(0) != null)
             *      {
             *              statoInvio.indirizzo = dr.GetValue(0).ToString();
             *      }
             *      if(dr.GetValue(1) != null)
             *      {
             *              statoInvio.serverSMTP = dr.GetValue(1).ToString();
             *      }
             *      if(dr.GetValue(2) != null)
             *      {
             *              statoInvio.portaSMTP = dr.GetValue(2).ToString();
             *      }
             *      if(dr.GetValue(3) != null)
             *      {
             *              statoInvio.interop = dr.GetValue(3).ToString();
             *      }
             *      if(dr.GetValue(4) != null)
             *      {
             *              statoInvio.codiceAmm = dr.GetValue(4).ToString();
             *      }
             *      if(dr.GetValue(5) != null)
             *      {
             *              statoInvio.codiceAOO = dr.GetValue(5).ToString();
             *      }
             * }
             * dr.Close();
             * return statoInvio;*/
            #endregion
        }
Exemple #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="statoInvio"></param>
        /// <returns></returns>
        private static DocsPaVO.StatoInvio.StatoInvio getDatiCanale(DocsPaVO.StatoInvio.StatoInvio statoInvio)
        {
            DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
            doc.GetDatiCanale(ref statoInvio);
            return(statoInvio);

            #region Codice Commentato

            /*string queryString =
             *      "SELECT  A.VAR_SERVER_SMTP, A.NUM_PORTA_SMTP, C.CHA_TIPO_CANALE, A.SYSTEM_ID " +
             *      "FROM DPA_CANALI_REG B, DPA_CANALI A, DOCUMENTTYPES C " +
             *      "WHERE B.ID_CANALE = A.SYSTEM_ID AND B.ID_DOCUMENTTYPE = C.SYSTEM_ID " +
             *      "AND B.ID_REGISTRO=" + statoInvio.idRegistro +
             *      " AND B.ID_DOCUMENTTYPE = " + statoInvio.typeId;
             * logger.Debug(queryString);
             * IDataReader dr = db.executeReader(queryString);
             * if (dr.Read())
             * {
             *      if(dr.GetValue(0) != null)
             *      {
             *              statoInvio.serverSMTP = dr.GetValue(0).ToString();
             *              if(dr.GetValue(1) != null)
             *              {
             *                      statoInvio.portaSMTP = dr.GetValue(1).ToString();
             *              }
             *              else
             *              {
             *                      statoInvio.portaSMTP = "";
             *              }
             *      }
             *      statoInvio.tipoCanale = dr.GetValue(2).ToString();
             *      statoInvio.idCanale = dr.GetValue(3).ToString();
             * }
             * dr.Close();
             * return statoInvio;*/
            #endregion
        }
Exemple #5
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);
        }
Exemple #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="statoInvio"></param>
 /// <returns></returns>
 private static DocsPaVO.StatoInvio.StatoInvio getDocumentType(DocsPaVO.StatoInvio.StatoInvio statoInvio)
 {
     DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
     doc.GetDocumentType(ref statoInvio);
     return(statoInvio);
 }