Beispiel #1
0
        public void BindGridNotifichePec(DocsPaWR.Notifica[] notifica)
        {
            //Costruisco il datagrid
            ArrayList listaElementiPrecedenti = Notifiche;

            if (notifica != null)
            {
                for (int i = 0; i < notifica.Length; i++)
                {
                    string infoNotifica   = string.Empty;
                    string nonCertificata = "MAIL NON CERTIFICATA";

                    DocsPaWR.TipoNotifica tiponotifica = SimplifiedInteroperabilityManager.getTipoNotifica(notifica[i].idTipoNotifica);


                    if (tiponotifica != null)
                    {
                        // per i DSN e le Eccezioni diamo piu dettagli e lo mettiamo prima
                        if ((tiponotifica.codiceNotifica == "eccezione") || (tiponotifica.codiceNotifica == "errore"))
                        {
                            infoNotifica += notifica[i].oggetto + "\r\n\r\n";
                        }
                        else
                        {
                            // Se il mittente della ricevuta è un URL, significa che è stato utilizzato come canale
                            // l'interoperabilità semplificata, quindi viene creata una descrizione diversa
                            if (Uri.IsWellFormedUriString(notifica[i].mittente, UriKind.Absolute))
                            {
                                infoNotifica = String.Format("{0} inviata il {1}", tiponotifica.codiceNotifica.Equals("errore-consegna") ? "mancata-consegna" : tiponotifica.codiceNotifica, notifica[i].data_ora);
                            }
                            else
                            {
                                infoNotifica += tiponotifica.descrizioneNotifica + " è stata inviata il '" + notifica[i].data_ora + "'"
                                                + "'. Il destinatario '" + notifica[i].destinatario + "' ha una mail di tipo: '" + (notifica[i].tipoDestinatario.ToUpper().Equals("ESTERNO") ? nonCertificata : notifica[i].tipoDestinatario) + "'."
                                                + "Il codice identificatore del messaggio è: '" + notifica[i].identificativo + "'.";
                            }
                        }
                    }

                    // Se la ricevuta in esame è relativa ad una spedizione per interoperabilità semplificata,
                    // non deve comparire "email di"
                    string descrizioneNotifica = Uri.IsWellFormedUriString(notifica[i].mittente, UriKind.Absolute) ? (tiponotifica.codiceNotifica.Equals("errore-consegna") ? "mancata-consegna" : tiponotifica.codiceNotifica) : tiponotifica.descrizioneNotifica +
                                                 (!notifica[i].erroreRicevuta.ToUpper().Equals("NESSUNO") || !string.IsNullOrEmpty(notifica[i].errore_esteso) ? " - " + notifica[i].erroreRicevuta : string.Empty);

                    if (listaElementiPrecedenti != null && listaElementiPrecedenti.Count > 0)
                    {
                        Cols col      = new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].destinatario, infoNotifica, 1, notifica[i].errore_esteso, true);
                        bool aggiungi = true;
                        for (int j = 0; j < listaElementiPrecedenti.Count; j++)
                        {
                            Cols col1 = (Cols)listaElementiPrecedenti[j];
                            if ((col1.Dettaglio == col.Dettaglio) &&
                                (col1.Descrizione == col.Descrizione) &&
                                (col1.Data == col.Data) &&
                                (col1.Tipo == col.Tipo))
                            {
                                aggiungi = false;
                                break;
                            }
                        }

                        //se ho selezionato da tabProtocollo tutti i destinatari devo eseguire i controlli per il monocasella
                        if (aggiungi && string.IsNullOrEmpty(Request.QueryString["indexCor"]) || Request.QueryString["indexCor"].Equals("-1") &&
                            ((DocsPaWR.ProtocolloUscita)schedaDocumento.protocollo).destinatari != null)
                        {
                            aggiungi = false;
                            foreach (DocsPaWR.Corrispondente c in ((DocsPaWR.ProtocolloUscita)schedaDocumento.protocollo).destinatari)
                            {
                                if ((from m in c.Emails where m.Email.ToUpper().Equals(notifica[i].destinatario.ToUpper()) select m).Count() > 0)
                                {
                                    aggiungi = true;
                                    break;
                                }
                            }
                            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})+)*$";
                            if (!System.Text.RegularExpressions.Regex.Match(notifica[i].destinatario, pattern).Success)
                            {
                                aggiungi = true;
                            }
                        }

                        if (aggiungi)
                        {
                            listaElementiPrecedenti.Add(new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].destinatario, infoNotifica, 1, notifica[i].errore_esteso, true));
                        }
                    }
                    else
                    {
                        Cols col      = new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].destinatario, infoNotifica, 1, notifica[i].errore_esteso, true);
                        bool aggiungi = true;
                        for (int j = 0; j < Dg_elem.Count; j++)
                        {
                            Cols col1 = (Cols)Dg_elem[j];
                            if ((col1.Dettaglio == col.Dettaglio) &&
                                (col1.Descrizione == col.Descrizione) &&
                                (col1.Data == col.Data) &&
                                (col1.Tipo == col.Tipo))
                            {
                                aggiungi = false;
                                break;
                            }
                        }
                        //se ho selezionato da tabProtocollo tutti i destinatari devo eseguire i controlli per il monocasella
                        if (aggiungi && string.IsNullOrEmpty(Request.QueryString["indexCor"]) || Request.QueryString["indexCor"].Equals("-1") &&
                            ((DocsPaWR.ProtocolloUscita)schedaDocumento.protocollo).destinatari != null)
                        {
                            aggiungi = false;
                            foreach (DocsPaWR.Corrispondente c in ((DocsPaWR.ProtocolloUscita)schedaDocumento.protocollo).destinatari)
                            {
                                if ((from m in c.Emails where m.Email.ToUpper().Equals(notifica[i].destinatario.ToUpper()) select m).Count() > 0)
                                {
                                    aggiungi = true;
                                    break;
                                }
                            }
                            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})+)*$";
                            if (!System.Text.RegularExpressions.Regex.Match(notifica[i].destinatario, pattern).Success)
                            {
                                aggiungi = true;
                            }
                        }

                        if (aggiungi)
                        {
                            Dg_elem.Add(col);
                        }
                    }
                }
            }

            if (listaElementiPrecedenti != null &&
                listaElementiPrecedenti.Count > 0)
            {
                Notifiche = listaElementiPrecedenti;
            }
            else
            {
                Notifiche = Dg_elem;
            }
        }
Beispiel #2
0
        public void BindGridNotifichePec(DocsPaWR.Notifica[] notifica, DocsPaWR.Corrispondente corr)
        {
            indexCor = Request.QueryString["indexCor"].ToString();
            if (notifica != null)
            {
                for (int i = 0; i < notifica.Length; i++)
                {
                    string infoNotifica   = string.Empty;
                    string nonCertificata = "MAIL NON CERTIFICATA";

                    bool corrok = false;
                    //se il campo destinatario è diverso da mail allora non si tratta di una ricevuta pec
                    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})+)*$";
                    if (!System.Text.RegularExpressions.Regex.Match(notifica[i].destinatario, pattern).Success)
                    {
                        //filtro per codice corrispondente(IS)
                        if ((!string.IsNullOrEmpty(FilterCodiceIS.valore) && notifica[i].destinatario.Contains(FilterCodiceIS.valore)) ||
                            (string.IsNullOrEmpty(indexCor) || indexCor.Equals("-1")))
                        {
                            corrok = true;
                        }
                        else
                        {
                            corrok = false;
                        }
                    }
                    else
                    {
                        // si tratta di una ricevuta pec(la prima volta non filtro per mail, quindi prendo tutte le ricevute pec)
                        if ((from m in corr.Emails where m.Email.ToUpper().Equals(notifica[i].destinatario.ToUpper()) select m).Count() > 0)
                        {
                            corrok = true;
                        }
                        else
                        {
                            corrok = false;
                        }
                    }
                    if (corrok)
                    {
                        DocsPaWR.TipoNotifica tiponotifica = SimplifiedInteroperabilityManager.getTipoNotifica(notifica[i].idTipoNotifica);
                        if (tiponotifica != null)
                        {
                            // per i DSN e le Eccezioni diamo piu dettagli e lo mettiamo prima
                            if ((tiponotifica.codiceNotifica == "eccezione") || (tiponotifica.codiceNotifica == "errore"))
                            {
                                infoNotifica += notifica[i].oggetto + "\r\n\r\n";
                            }
                            else
                            {
                                // Se il destinatario ha come canale impostato, IS, viene visualizzato un testo differente rispetto
                                // a quello mostrato nel caso PEC
                                //if (receiver != null && receiver.canalePref.tipoCanale == InteroperabilitaSemplificataManager.SimplifiedInteroperabilityId)
                                if (Uri.IsWellFormedUriString(notifica[i].mittente, UriKind.Absolute))
                                {
                                    //infoNotifica = tiponotifica.codiceNotifica.Replace("email di ", String.Empty);
                                    //infoNotifica += " inviata il '" + notifica[i].data_ora + "'";
                                    infoNotifica = String.Format("{0} inviata il {1}", tiponotifica.codiceNotifica.Equals("errore-consegna") ? "mancata-consegna" : tiponotifica.codiceNotifica, notifica[i].data_ora);
                                }
                                else
                                {
                                    infoNotifica += tiponotifica.descrizioneNotifica + " è stata inviata il '" + notifica[i].data_ora + "'"
                                                    + "'. Il destinatario '" + notifica[i].destinatario + "' ha una mail di tipo: '" + (notifica[i].tipoDestinatario.ToUpper().Equals("ESTERNO") ? nonCertificata : notifica[i].tipoDestinatario) + "'."
                                                    + "Il codice identificatore del messaggio è: '" + notifica[i].identificativo + "'.";
                                }
                            }
                        }

                        //string descrizioneNotifica = tiponotifica.descrizioneNotifica + (notifica[i].erroreRicevuta.ToUpper().Equals("NESSUNO") || !string.IsNullOrEmpty(notifica[i].errore_esteso) ? string.Empty : " - " + notifica[i].erroreRicevuta);
                        string descrizioneNotifica = Uri.IsWellFormedUriString(notifica[i].mittente, UriKind.Absolute) ? (tiponotifica.codiceNotifica.Equals("errore-consegna") ? "mancata-consegna" : tiponotifica.codiceNotifica) :
                                                     tiponotifica.descrizioneNotifica + (!notifica[i].erroreRicevuta.ToUpper().Equals("NESSUNO") || !string.IsNullOrEmpty(notifica[i].errore_esteso) ? " - " + notifica[i].erroreRicevuta : string.Empty);
                        Cols col      = new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].destinatario, infoNotifica, 1, notifica[i].errore_esteso, true);
                        bool aggiungi = true;
                        for (int j = 0; j < Dg_elem.Count; j++)
                        {
                            Cols col1 = (Cols)Dg_elem[j];
                            if ((col1.Dettaglio == col.Dettaglio) &&
                                (col1.Descrizione == col.Descrizione) &&
                                (col1.Data == col.Data) &&
                                (col1.Tipo == col.Tipo))
                            {
                                aggiungi = false;
                                break;
                            }
                        }
                        if (aggiungi)
                        {
                            Dg_elem.Add(col);
                        }
                    }
                }
            }
            Notifiche = Dg_elem;
        }
Beispiel #3
0
        public void BindGridNotifichePec(DocsPaWR.Notifica[] notifica, DocsPaWR.Corrispondente corr, string tutti)
        {
            //Costruisco il datagrid
            ArrayList listaElementiPrecedenti = Notifiche;

            // Recupero dei destinatari del protocollo in uscita
            //Corrispondente[] receivers = ((ProtocolloUscita)DocumentManager.getDocumentoSelezionato().protocollo).destinatari;

            if (notifica != null)
            {
                for (int i = 0; i < notifica.Length; i++)
                {
                    string infoNotifica   = string.Empty;
                    string nonCertificata = "MAIL NON CERTIFICATA";

                    bool corrok = false;
                    for (int j = 0; j < notifica.Length; j++)
                    {
                        if (corr.email.ToLower().Equals(notifica[j].destinatario.ToLower()))
                        {
                            corrok = true;
                            break;
                        }
                    }

                    if (!corrok)
                    {
                        break;
                    }

                    // Recupero del destinario con codice uguale a quello del destinatario della notifica
                    //Corrispondente receiver = receivers.Where(r => r.codiceRubrica.Contains(notifica[i].destinatario.Replace("'", ""))).FirstOrDefault();

                    DocsPaWR.TipoNotifica tiponotifica = SimplifiedInteroperabilityManager.getTipoNotifica(notifica[i].idTipoNotifica);
                    if (tiponotifica != null)
                    {
                        // per i DSN e le Eccezioni diamo piu dettagli e lo mettiamo prima
                        if ((tiponotifica.codiceNotifica == "eccezione") || (tiponotifica.codiceNotifica == "errore"))
                        {
                            //if (receiver != null && receiver.canalePref.tipoCanale == InteroperabilitaSemplificataManager.SimplifiedInteroperabilityId)
                            //    infoNotifica += notifica[i].Reason + "\r\n\r\n";
                            //else
                            infoNotifica += notifica[i].oggetto + "\r\n\r\n";
                        }
                        else
                        {
                            // Se il destinatario ha come canale impostato, IS, viene visualizzato un testo differente rispetto
                            // a quello mostrato nel caso PEC
                            //if (receiver != null && receiver.canalePref.tipoCanale == InteroperabilitaSemplificataManager.SimplifiedInteroperabilityId)
                            //{
                            //    infoNotifica = tiponotifica.descrizioneNotifica.Replace("email di ", String.Empty);
                            //    infoNotifica += " inviata il '" + notifica[i].data_ora + "'";
                            //}
                            //else
                            infoNotifica += tiponotifica.descrizioneNotifica + " è stata inviata il '" + notifica[i].data_ora + "'"
                                            + "'. Il destinatario '" + notifica[i].destinatario + "' ha una mail di tipo: '" + (notifica[i].tipoDestinatario.ToUpper().Equals("ESTERNO") ? nonCertificata : notifica[i].tipoDestinatario) + "'."
                                            + "Il codice identificatore del messaggio è: '" + notifica[i].identificativo + "'.";
                        }
                    }

                    string descrizioneNotifica = String.Empty;
                    //if (receiver != null && receiver.canalePref.tipoCanale == InteroperabilitaSemplificataManager.SimplifiedInteroperabilityId)
                    //    descrizioneNotifica = tiponotifica.descrizioneNotifica.Replace("email di ", String.Empty) + (!notifica[i].erroreRicevuta.ToUpper().Equals("NESSUNO") || !string.IsNullOrEmpty(notifica[i].errore_esteso) ? " - " + notifica[i].erroreRicevuta : string.Empty);
                    //else
                    descrizioneNotifica = tiponotifica.descrizioneNotifica + (!notifica[i].erroreRicevuta.ToUpper().Equals("NESSUNO") || !string.IsNullOrEmpty(notifica[i].errore_esteso) ? " - " + notifica[i].erroreRicevuta : string.Empty);

                    if (listaElementiPrecedenti != null &&
                        listaElementiPrecedenti.Count > 0)
                    {
                        Cols col      = new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].mittente, infoNotifica, 1, notifica[i].errore_esteso, true);
                        bool aggiungi = true;
                        for (int j = 0; j < listaElementiPrecedenti.Count; j++)
                        {
                            Cols col1 = (Cols)listaElementiPrecedenti[j];
                            if ((col1.Dettaglio == col.Dettaglio) &&
                                (col1.Descrizione == col.Descrizione) &&
                                (col1.Data == col.Data) &&
                                (col1.Tipo == col.Tipo))
                            {
                                aggiungi = false;
                                break;
                            }
                        }
                        if (aggiungi)
                        {
                            listaElementiPrecedenti.Add(new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].destinatario, infoNotifica, 1, notifica[i].errore_esteso, true));
                        }
                    }
                    else
                    {
                        Cols col      = new Cols(notifica[i].data_ora, descrizioneNotifica, notifica[i].destinatario, infoNotifica, 1, notifica[i].errore_esteso, true);
                        bool aggiungi = true;
                        for (int j = 0; j < Dg_elem.Count; j++)
                        {
                            Cols col1 = (Cols)Dg_elem[j];
                            if ((col1.Dettaglio == col.Dettaglio) &&
                                (col1.Descrizione == col.Descrizione) &&
                                (col1.Data == col.Data) &&
                                (col1.Tipo == col.Tipo))
                            {
                                aggiungi = false;
                                break;
                            }
                        }
                        if (aggiungi)
                        {
                            Dg_elem.Add(col);
                        }
                    }
                }
            }

            if (listaElementiPrecedenti != null &&
                listaElementiPrecedenti.Count > 0)
            {
                Notifiche = listaElementiPrecedenti;
            }
            else
            {
                Notifiche = Dg_elem;
            };
        }