public static TipoNotifica getTipoNotifica(string systemIdTipoNotifica) { try { TipoNotifica tiponotifica = null; if (string.IsNullOrEmpty(systemIdTipoNotifica)) { return(tiponotifica); } try { tiponotifica = _ws.getTipoNotifica(systemIdTipoNotifica); } catch (Exception e) { throw SoapExceptionParser.GetOriginalException(e); } return(tiponotifica); } catch (System.Exception ex) { UIManager.AdministrationManager.DiagnosticError(ex); return(null); } }
public bool inserisciTipoNotifica(TipoNotifica tipoNotifica) { bool retval = false; DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("I_DPA_TIPO_NOTIFICA"); if (dbType.ToUpper().Equals("ORACLE")) { q.setParam("var_systemid", DocsPaDbManagement.Functions.Functions.GetSystemIdColName()); q.setParam("systemid", DocsPaDbManagement.Functions.Functions.GetSystemIdNextVal("DPA_TIPO_NOTIFICA")); } else { q.setParam("var_systemid", string.Empty); q.setParam("systemid", String.Empty); } q.setParam("codicenotifica", tipoNotifica.codiceNotifica); q.setParam("descrizione", tipoNotifica.descrizioneNotifica); logger.Debug("inserimento in tipo_notifica: " + q.getSQL()); retval = ExecuteNonQuery(q.getSQL()); return(retval); }
public TipoNotifica ricercaTipoNotificheBySystemId(string systemId) { TipoNotifica tipoNotifica = null; DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_DPA_TIPO_NOTIFICA_BY_SYSTEM_ID"); q.setParam("systemid", systemId); logger.Debug("ricerca tipo notifica by system id: " + q.getSQL()); using (IDataReader reader = ExecuteReader(q.getSQL())) { if (reader.FieldCount > 0) { if (reader.Read()) { tipoNotifica = new TipoNotifica(); tipoNotifica.idTipoNotifica = reader["SYSTEM_ID"].ToString(); tipoNotifica.codiceNotifica = reader["VAR_CODICE_NOTIFICA"].ToString(); tipoNotifica.descrizioneNotifica = reader["VAR_DESCRIZIONE"].ToString(); } } } return(tipoNotifica); }
private void GetData(string systemId) { TipoNotifica data = null; // Caricamento etichette relative all'amministrazione richiesta data = ricercaTipoNotificaBySystemId(systemId); _intance.Add(systemId, data); }
public bool SendNotifica(PERSONA mittente, PERSONA destinatario, TipoNotifica messaggio, ControllerContext controller, string view, object datiNotifica, ATTIVITA attivitaMittente = null, DatabaseContext db = null) { bool nuovaConnessione = true; try { if (db != null && db.Database.Connection.State == System.Data.ConnectionState.Open) { nuovaConnessione = false; } NOTIFICA notifica = new NOTIFICA(); notifica.ID_PERSONA = mittente.ID; if (attivitaMittente != null) { notifica.ID_ATTIVITA = attivitaMittente.ID; } notifica.ID_PERSONA_DESTINATARIO = destinatario.ID; notifica.MESSAGGIO = (int)messaggio; notifica.STATO = (int)StatoNotifica.ATTIVA; notifica.DATA_INSERIMENTO = DateTime.Now; if (nuovaConnessione) { db = new DatabaseContext(); } db.NOTIFICA.Add(notifica); return(db.SaveChanges() > 0); } catch (Exception eccezione) { //Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione); LoggatoreModel.Errore(eccezione); } finally { if (nuovaConnessione && db != null) { db.Database.Connection.Close(); } try { string indirizzoEmail = destinatario.PERSONA_EMAIL.SingleOrDefault(e => e.TIPO == (int)TipoEmail.Registrazione).EMAIL; // modificare oggetto recuperando dal tipo notifica la stringa string oggetto = Components.EnumHelper <TipoNotifica> .GetDisplayValue(messaggio); SendEmail(indirizzoEmail, oggetto, controller, view, datiNotifica); SendChat("", oggetto); } catch (Exception eccezione) { //Elmah.ErrorSignal.FromCurrentContext().Raise(eccezione); LoggatoreModel.Errore(eccezione); } } return(false); }
public static bool SetInstance(TipoNotifica tiponotifica, string systemId) { bool success = false; TipoNotifica data = null; _intance.Remove(systemId); data = ricercaTipoNotificaBySystemId(systemId); if (data != null) { success = true; } _intance.Add(systemId, tiponotifica); return(success); }
public bool updateTipoNotifica(TipoNotifica tipoNotifica) { bool retval = false; DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("U_DPA_TIPO_NOTIFICA"); q.setParam("systemid", tipoNotifica.idTipoNotifica); q.setParam("codicenotifica", tipoNotifica.codiceNotifica); q.setParam("descrizione", tipoNotifica.descrizioneNotifica); logger.Debug("update tipo_notifica: " + q.getSQL()); retval = ExecuteNonQuery(q.getSQL()); return(retval); }
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); }
public static TipoNotifica GetInstance(string systemId) { if (instance == null) { instance = new InteroperabilitaManager(); instance.initializeInstance(systemId); } if (instance != null && !_intance.ContainsKey(systemId)) { lock (_intance) { instance.initializeInstance(systemId); } } TipoNotifica tipologia = _intance[systemId]; return(tipologia); }
/// <summary> /// Metodo per inserire la ricevuta nel registro delle ricevute /// </summary> /// <param name="attachment">Allegato da aggiungere</param> /// <param name="messageId">Identificativo del messaggio di interoperabilità</param> /// <param name="receiverCode">Codice del destinatario per cui è stata generata la ricevuta</param> /// <param name="senderUrl">Url del mittente della spedizione</param> /// <param name="proofDate">Data di generazione della ricevuta</param> /// <param name="documentId">Id del documento cui aggiungere l'allegato</param> private static void SaveProofInRegistry(Allegato attachment, String messageId, String receiverCode, String senderUrl, DateTime proofDate, String documentId) { TipoNotifica not = InteroperabilitaManager.ricercaTipoNotificaByCodice("avvenuta-consegna"); InteroperabilitaManager.inserimentoNotifica( new DocsPaVO.DatiCert.Notifica() { consegna = "1", data_ora = proofDate.ToString("dd/MM/yyyy HH:mm:ss"), destinatario = receiverCode, docnumber = documentId, idTipoNotifica = not.idTipoNotifica, mittente = senderUrl, msgid = messageId, risposte = String.Empty, oggetto = "Ricevuta di avvenuta consegna" }, attachment.versionId); }
/// <summary> /// Metodo per il salvataggio dell'eccezione nel log relativo all'IS /// </summary> /// <param name="messageId">Identificativo del messaggio</param> /// <param name="senderUrl">Url del mittente</param> /// <param name="proofDate">Data di generazione della ricevuta</param> /// <param name="documentId">Id del documento</param> /// <param name="receiverCode">Codice del destinatario</param> /// <param name="reason">Ragione di annullamento o dettaglio dell'eccezione</param> private static void SaveExceptionInRegistry(String messageId, String senderUrl, DateTime proofDate, String documentId, String receiverCode, String reason) { TipoNotifica not = InteroperabilitaManager.ricercaTipoNotificaByCodice("eccezione"); InteroperabilitaManager.inserimentoNotifica( new DocsPaVO.DatiCert.Notifica() { consegna = "1", data_ora = proofDate.ToString("dd/MM/yyyy HH:mm:ss"), destinatario = receiverCode, docnumber = documentId, idTipoNotifica = not.idTipoNotifica, mittente = senderUrl, msgid = messageId, risposte = String.Empty, oggetto = reason }, String.Empty); }
public static TipoNotifica getTipoNotifica(string systemIdTipoNotifica) { TipoNotifica tiponotifica = null; if (string.IsNullOrEmpty(systemIdTipoNotifica)) { return(tiponotifica); } try { tiponotifica = ws.getTipoNotifica(systemIdTipoNotifica); } catch (Exception e) { logger.Debug("errore in InetroperabilitaManager - getNotifica: " + e.Message); } return(tiponotifica); }
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); }
public TipoNotifica ricercaTipoNotificheByCodice(string codiceNotifica) { TipoNotifica tipoNotifica = null; DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_DPA_TIPO_NOTIFICA_BY_CODICE"); q.setParam("codicenotifica", codiceNotifica); logger.Debug("ricerca tipo notifica by codice : " + q.getSQL()); logger.Debug("execute reader"); using (DocsPaDB.DBProvider dbProvider = new DBProvider()) { using (IDataReader reader = dbProvider.ExecuteReader(q.getSQL())) { logger.Debug("fieldCount: " + reader.FieldCount); if (reader.FieldCount > 0) { if (reader.Read()) { tipoNotifica = new TipoNotifica(); logger.Debug("SYSTEM_ID: " + reader["SYSTEM_ID"].ToString()); tipoNotifica.idTipoNotifica = reader["SYSTEM_ID"].ToString(); logger.Debug("VAR_CODICE_NOTIFICA: " + reader["VAR_CODICE_NOTIFICA"].ToString()); tipoNotifica.codiceNotifica = reader["VAR_CODICE_NOTIFICA"].ToString(); logger.Debug("VAR_DESCRIZIONE: " + reader["VAR_DESCRIZIONE"].ToString()); tipoNotifica.descrizioneNotifica = reader["VAR_DESCRIZIONE"].ToString(); logger.Debug("tipoNotifica creato"); } logger.Debug("fuori dal primo if"); } logger.Debug("fuori dal secondo if"); } logger.Debug("fuori dal primo using"); } logger.Debug("fuori dal secondo using"); return(tipoNotifica); }
public TipoNotifica[] ricercaTipoNotifiche() { DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_DPA_TIPO_NOTIFICA"); List <TipoNotifica> Tiponotifica = new List <TipoNotifica>(); logger.Debug("ricerca tipo notifica " + q.getSQL()); using (IDataReader reader = ExecuteReader(q.getSQL())) { if (reader.FieldCount > 0) { if (reader.Read()) { TipoNotifica tipoNotifica = new TipoNotifica(); tipoNotifica.idTipoNotifica = reader["SYSTEM_ID"].ToString(); tipoNotifica.codiceNotifica = reader["VAR_CODICE_NOTIFICA"].ToString(); tipoNotifica.descrizioneNotifica = reader["VAR_DESCRIZIONE"].ToString(); Tiponotifica.Add(tipoNotifica); } } } return(Tiponotifica.ToArray()); }
/// <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); }