/// <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 }
/// <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); }
/// <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 }
/// <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 }
/// <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); }
/// <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); }