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