Example #1
0
        /// <summary>
        /// Funzione per l'aggiunta dei dettagli su una nuova trasmissione singola
        /// </summary>
        /// <param name="singleTransmission">La trasmissione singola da aggiungere</param>
        public void AddTransmissionDetails(TrasmissioneSingola singleTransmission)
        {
            // L'oggetto da aggiungere alla collezione
            MassiveOperationTransmissionDetailsElement element;

            // Creazione dell'elemento
            element = new MassiveOperationTransmissionDetailsElement();

            // Impostazione delle varie proprietà del nuovo elemento
            element.SingleTrasmission   = singleTransmission;
            element.ExpirationDate      = singleTransmission.dataScadenza;
            element.Reason              = singleTransmission.ragione.descrizione;
            element.RecivierDescription = singleTransmission.corrispondenteInterno.descrizione;
            element.Type             = singleTransmission.tipoTrasm;
            element.UserTransmission = singleTransmission.trasmissioneUtente;
            element.Id   = Guid.NewGuid().ToString().ToUpper();
            element.Note = singleTransmission.noteSingole;
            element.HidePreviousVersions = singleTransmission.hideDocumentPreviousVersions;

            // Se singleTransmission contiene un'unica trasmissione utente, allora daNotificare
            // è true indipendentemente dalle impostazioni
            if (singleTransmission.trasmissioneUtente.Length == 1)
            {
                singleTransmission.trasmissioneUtente[0].daNotificare = true;
            }

            // Aggiunta del nuovo elemento
            this.transmissionCollection.Add(element.Id.ToUpper(), element);
        }
Example #2
0
        public static bool CanInsertInLibroFirma(TrasmissioneSingola trasmSing, string docnumber)
        {
            bool value = false;

            if (trasmSing.ragione.azioneRichiesta != null && trasmSing.ragione.azioneRichiesta.ToString() != string.Empty)
            {
                string azioneRichiesta = trasmSing.ragione.azioneRichiesta.ToString();

                String sign = string.Empty;
                if (azioneRichiesta.Equals(LibroFirmaManager.TypeEvent.SIGN_CADES) || azioneRichiesta.Equals(LibroFirmaManager.TypeEvent.SIGN_PADES))
                {
                    sign = "DO_DOC_FIRMA";
                }
                if (azioneRichiesta.Equals(LibroFirmaManager.TypeEvent.VERIFIED))
                {
                    sign = "DO_DOC_FIRMA_ELETTRONICA";
                }

                value = UIManager.UserManager.IsAuthorizedFunctions("DO_LIBRO_FIRMA") && UIManager.UserManager.IsAuthorizedFunctions(sign) && !UIManager.LibroFirmaManager.IsDocInLibroFirma(docnumber);
            }
            else
            {
                value = false;
            }

            return(value);
        }
Example #3
0
        private void CreateAndTrasmDoc(SchedaDocumento scheda, InfoUtente userInfo, Ruolo ruolo)
        {
            //creo la trasmissione
            Trasmissione        trasm  = new Trasmissione();
            TrasmissioneSingola trasmS = new TrasmissioneSingola();
            TrasmissioneUtente  trasmU = new TrasmissioneUtente();

            //trasm.dataInvio = DateTime.Now.ToShortDateString();
            trasm.DataDocFasc   = scheda.dataCreazione;
            trasm.infoDocumento = DocsPAWA.DocumentManager.getInfoDocumento(scheda);
            trasm.ruolo         = ruolo;
            trasm.tipoOggetto   = TrasmissioneTipoOggetto.DOCUMENTO;
            trasm.utente        = DocsPAWA.UserManager.getUtente();

            trasmS.ragione               = TrasmManager.GetRagioneNotifica(userInfo.idAmministrazione);
            trasmS.tipoDest              = TrasmissioneTipoDestinatario.RUOLO;
            trasmS.tipoTrasm             = "S";
            trasmS.corrispondenteInterno = UserManager.getCorrispondenteBySystemID(this.Page, ruolo.systemId);
            trasmU.daNotificare          = true;
            trasmU.utente = UserManager.getUtente();

            trasmS.trasmissioneUtente    = new TrasmissioneUtente[1];
            trasmS.trasmissioneUtente[0] = trasmU;
            trasm.trasmissioniSingole    = new TrasmissioneSingola[1];
            trasm.trasmissioniSingole[0] = trasmS;
            Trasmissione trasmRes = TrasmManager.saveExecuteTrasm(this.Page, trasm, userInfo);
        }
Example #4
0
        public static bool InserimentoInLibroFirma(System.Web.UI.Page page, Trasmissione trasm, string idTrasmSingola)
        {
            try
            {
                SchedaDocumento     sch          = DocumentManager.getDocumentDetailsNoSecurity(page, trasm.infoDocumento.docNumber, trasm.infoDocumento.docNumber);
                TrasmissioneSingola trasmSingola = (from n in trasm.trasmissioniSingole where n.systemId.Equals(idTrasmSingola) select n).FirstOrDefault();
                string noteNoteSing           = trasmSingola.noteSingole;
                string note                   = !string.IsNullOrEmpty(trasm.noteGenerali) ? (string.IsNullOrEmpty(noteNoteSing) ? trasm.noteGenerali : trasm.noteGenerali + " - " + noteNoteSing) : noteNoteSing;
                ElementoInLibroFirma elemento = new ElementoInLibroFirma()
                {
                    InfoDocumento = new InfoDocLibroFirma()
                    {
                        Docnumber = sch.docNumber, VersionId = sch.documenti[0].versionId, NumVersione = Convert.ToInt32(sch.documenti[0].version)
                    },
                    DataAccettazione = DateTime.Now.ToString(),
                    Modalita         = LibroFirmaManager.Modalita.MANUALE,
                    TipoFirma        = trasmSingola.ragione.azioneRichiesta.ToString(),
                    StatoFirma       = TipoStatoElemento.DA_FIRMARE,
                    RuoloProponente  = trasm.ruolo,
                    UtenteProponente = trasm.utente,
                    IdRuoloTitolare  = RoleManager.GetRoleInSession().idGruppo,
                    IdUtenteTitolare = UserManager.GetUserInSession().idPeople,
                    IdUtenteLocker   = UserManager.GetUserInSession().idPeople,
                    IdTrasmSingola   = idTrasmSingola,
                    Note             = note
                };

                return(docsPaWS.InserimentoInLibroFirma(elemento, UserManager.GetInfoUser()));
            }
            catch (System.Exception ex)
            {
                UIManager.AdministrationManager.DiagnosticError(ex);
                return(false);
            }
        }
Example #5
0
        private void addTrasmissioneUtente(Utente utente, TrasmissioneSingola trasmSingola)
        {
            TrasmissioneUtente trasmissioneUtente = new TrasmissioneUtente();

            trasmissioneUtente.utente       = utente;
            trasmissioneUtente.daNotificare = daNotificareSuModello(utente.idPeople, trasmSingola.corrispondenteInterno.systemId, _modello);
            trasmSingola.trasmissioneUtente.Add(trasmissioneUtente);
        }
Example #6
0
            protected void AddTrasmissioneUtente(Utente utente, TrasmissioneSingola trasm)
            {
                TrasmissioneUtente trasmissioneUtente = new TrasmissioneUtente();

                trasmissioneUtente.utente       = utente;
                trasmissioneUtente.daNotificare = true;
                trasm.trasmissioneUtente.Add(trasmissioneUtente);
            }
Example #7
0
        /// <summary>
        /// Creazione tabella trasmissioni singole
        /// </summary>
        /// <param name="trasmissioneSingola"></param>
        /// <param name="viewNoteSingole"></param>
        private void FetchTableTrasmissioneSingola(TrasmissioneSingola trasmissioneSingola, bool viewNoteSingole)
        {
            Table table = new Table();

            table.ID = "tableTrasmissioneSingola_" + trasmissioneSingola.systemId;
            table.Attributes.Add("summary", "Dettagli trasmissione singola");
            table.Style.Add("WIDTH", "95%");

            TableRow row = new TableRow();

            this.AppendHeaderTableCell(row, "Destinatario");
            this.AppendHeaderTableCell(row, "Ragione");
            this.AppendHeaderTableCell(row, "Tipo");
            this.AppendHeaderTableCell(row, "Note individuali");
            this.AppendHeaderTableCell(row, "Scade il");
            table.Rows.Add(row);

            row = new TableRow();
            this.AppendStandardTableCell(row, trasmissioneSingola.corrispondenteInterno.descrizione);
            this.AppendStandardTableCell(row, trasmissioneSingola.ragione.descrizione);

            string tipoTrasmissione = string.Empty;

            if (trasmissioneSingola.tipoTrasm.Equals("T"))
            {
                tipoTrasmissione = "TUTTI";
            }
            else if (trasmissioneSingola.tipoTrasm.Equals("S"))
            {
                tipoTrasmissione = "UNO";
            }

            this.AppendStandardTableCell(row, tipoTrasmissione);

            // visualizzazione del testo relativo alla nota singola
            // solamente se l'utente che ha effettuato la trasmissione
            // sia lo stesso di quello correntemente connesso
            if (viewNoteSingole)
            {
                this.AppendStandardTableCell(row, trasmissioneSingola.noteSingole);
            }
            else
            {
                this.AppendStandardTableCell(row, new string('-', 15));
            }

            this.AppendStandardTableCell(row, trasmissioneSingola.dataScadenza);
            table.Rows.Add(row);

            this.detailsContainer.Controls.Add(table);

            this.FetchTableTrasmissioniUtente(trasmissioneSingola);
        }
Example #8
0
        public TrasmissioneSingola GetSingleTransmissionForUser(string corrSystemId)
        {
            TrasmissioneSingola toReturn = null;

            foreach (MassiveOperationTransmissionDetailsElement element in
                     this.transmissionCollection.Values)
            {
                if (element.SingleTrasmission.corrispondenteInterno.systemId == corrSystemId)
                {
                    toReturn = element.SingleTrasmission;
                }
            }

            return(toReturn);
        }
Example #9
0
 private static void buildBasicInfo(TrasmissioneSingola trasmissioneSingola, Corrispondente corr, RagioneTrasmissione ragione, string note, string tipoTrasm, int scadenza)
 {
     trasmissioneSingola.tipoTrasm             = tipoTrasm;
     trasmissioneSingola.corrispondenteInterno = corr;
     trasmissioneSingola.ragione     = ragione;
     trasmissioneSingola.noteSingole = note;
     if (scadenza > 0)
     {
         string          dataScadenza = "";
         System.DateTime data         = System.DateTime.Now.AddDays(scadenza);
         dataScadenza = data.Day + "/" + data.Month + "/" + data.Year;
         trasmissioneSingola.dataScadenza = dataScadenza;
     }
     trasmissioneSingola.trasmissioneUtente = new ArrayList();
 }
Example #10
0
        /// <summary>
        /// Reperimento trasmissione utente visualizzata
        /// </summary>
        /// <returns></returns>
        private TrasmissioneUtente GetTrasmissioneUtente()
        {
            TrasmissioneUtente trasmUtente  = null;
            Trasmissione       trasmissione = this.GetTrasmissione();

            if (trasmissione.trasmissioniSingole.Length > 0)
            {
                TrasmissioneSingola trasmSingola = trasmissione.trasmissioniSingole[0];
                if (trasmSingola.trasmissioneUtente.Length > 0)
                {
                    trasmUtente = trasmSingola.trasmissioneUtente[0];
                }
            }

            return(trasmUtente);
        }
Example #11
0
        public void addTrasmSingole(Corrispondente corr, RagioneTrasmissione ragione, string note, string tipoTrasm, int scadenza)
        {
            if (_trasmissioniSingole.ContainsKey(corr.systemId))
            {
                if (_trasmissioniSingole[corr.systemId].daEliminare)
                {
                    _trasmissioniSingole[corr.systemId].daEliminare = false;
                }
                return;
            }
            TrasmissioneSingola _trasmissioneSingola = new TrasmissioneSingola();

            buildBasicInfo(_trasmissioneSingola, corr, ragione, note, tipoTrasm, scadenza);
            if (corr is Ruolo)
            {
                _trasmissioneSingola.tipoDest = TipoDestinatario.RUOLO;
                ArrayList listaUtenti = queryUtenti(corr);
                if (listaUtenti.Count == 0)
                {
                    return;
                }
                foreach (Utente temp in listaUtenti)
                {
                    addTrasmissioneUtente(temp, _trasmissioneSingola);
                }
                _trasmissioniSingole.Add(corr.systemId, _trasmissioneSingola);
            }
            if (corr is Utente)
            {
                _trasmissioneSingola.tipoDest = TipoDestinatario.UTENTE;
                addTrasmissioneUtente((Utente)corr, _trasmissioneSingola);
                _trasmissioniSingole.Add(corr.systemId, _trasmissioneSingola);
            }
            if (corr is UnitaOrganizzativa)
            {
                UnitaOrganizzativa             theUo = (UnitaOrganizzativa)corr;
                QueryCorrispondenteAutorizzato qca   = new QueryCorrispondenteAutorizzato();
                qca.ragione = _trasmissioneSingola.ragione;
                qca.ruolo   = _ruolo;
                ArrayList ruoli = BusinessLogic.Utenti.addressBookManager.getRuoliRiferimentoAutorizzati(qca, theUo);
                foreach (Ruolo r in ruoli)
                {
                    addTrasmSingole(r, ragione, note, tipoTrasm, scadenza);
                }
            }
        }
Example #12
0
        /// <summary>
        /// Creazione tabella trasmissioni utente
        /// </summary>
        /// <param name="trasmissioneUtente"></param>
        /// <returns></returns>
        private void FetchTableTrasmissioniUtente(TrasmissioneSingola trasmissioneSingola)
        {
            Table table = new Table();

            table.ID = "tableTrasmissioniUtente_" + trasmissioneSingola.systemId;
            table.Style.Add("WIDTH", "90%");

            table.Attributes.Add("summary", "Dettagli trasmissione utente");

            TableRow row = new TableRow();

            this.AppendHeaderTableCell(row, "Utente");
            this.AppendHeaderTableCell(row, "Vista il");
            this.AppendHeaderTableCell(row, "Accettata il");
            this.AppendHeaderTableCell(row, "Data rifiuto");
            this.AppendHeaderTableCell(row, "Info accettazione / Info rifiuto");
            this.AppendHeaderTableCell(row, "Riposta il");
            table.Rows.Add(row);

            foreach (TrasmissioneUtente trasmissioneUtente in trasmissioneSingola.trasmissioneUtente)
            {
                row = new TableRow();
                this.AppendStandardTableCell(row, trasmissioneUtente.utente.descrizione);
                this.AppendStandardTableCell(row, trasmissioneUtente.dataVista);

                if (trasmissioneUtente.valida != null && trasmissioneUtente.valida.Equals("1"))
                {
                    this.AppendStandardTableCell(row, trasmissioneUtente.dataAccettata);
                }
                else
                {
                    this.AppendStandardTableCell(row, new string('-', 15));
                }

                this.AppendStandardTableCell(row, trasmissioneUtente.dataRifiutata);
                this.AppendStandardTableCell(row, trasmissioneUtente.noteAccettazione + Environment.NewLine + trasmissioneUtente.noteRifiuto);
                this.AppendStandardTableCell(row, trasmissioneUtente.dataRisposta);
                table.Rows.Add(row);
            }

            this.detailsContainer.Controls.Add(table);
        }
Example #13
0
        /// <summary>
        /// Verifica se, per la trasmissione, è richiesta la
        /// gestione dell'accettazione/rifiuto da parte dell'utente
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <returns></returns>
        public bool IsRequiredAccettazioneRifiuto(Trasmissione trasmissione)
        {
            bool retValue = false;

            if (trasmissione.trasmissioniSingole.Length > 0)
            {
                TrasmissioneSingola trasmSingola = trasmissione.trasmissioniSingole[0];

                if (trasmSingola.trasmissioneUtente.Length > 0)
                {
                    TrasmissioneUtente trasmUtente = trasmSingola.trasmissioneUtente[0];

                    retValue = (trasmSingola.ragione.tipo.Equals("W") &&
                                trasmUtente.dataRifiutata.Equals(string.Empty) &&
                                trasmUtente.dataAccettata.Equals(string.Empty));
                }
            }

            return(retValue);
        }
Example #14
0
        public TrasmissioneSingola GetSingleTransmissionForUser(string corrSystemId)
        {
            try
            {
                TrasmissioneSingola toReturn = null;

                foreach (MassiveOperationTransmissionDetailsElement element in
                         this.transmissionCollection.Values)
                {
                    if (element.SingleTrasmission.corrispondenteInterno.systemId == corrSystemId)
                    {
                        toReturn = element.SingleTrasmission;
                    }
                }

                return(toReturn);
            }
            catch (System.Exception ex)
            {
                UIManager.AdministrationManager.DiagnosticError(ex);
                return(null);
            }
        }
Example #15
0
        /// <summary>
        /// Creazione tabella trasmissioni singole
        /// </summary>
        /// <param name="viewNoteSingole"></param>
        private void FetchTableTrasmissioneSingola(TrasmissioneSingola trasmissioneSingola)
        {
            Table table = new Table();

            table.ID = "tableTrasmissioneSingola_" + trasmissioneSingola.systemId;
            table.Attributes.Add("summary", "Dettagli trasmissione singola");

            TableRow row = new TableRow();

            this.AppendHeaderTableCell(row, "Note individuali");
            table.Rows.Add(row);

            row = new TableRow();
            this.AppendStandardTableCell(row, trasmissioneSingola.noteSingole);
            table.Rows.Add(row);

            this.detailsContainer.Controls.Add(table);

            if (trasmissioneSingola.trasmissioneUtente.Length > 0)
            {
                this.FetchTableTrasmissioniUtente(trasmissioneSingola.trasmissioneUtente[0]);
            }
        }
Example #16
0
        /// <summary>
        /// Creazione dataset contenente i dati delle trasm ricevute
        /// </summary>
        /// <param name="trasmissioni"></param>
        /// <returns></returns>
        protected override DataSet TrasmissioniToDataset(DocsPAWA.DocsPaWR.Trasmissione[] trasmissioni)
        {
            DataSet   ds = new DataSet("DatasetTrasmissioniRicevute");
            DataTable dt = new DataTable("TableTrasmissioniRicevute");

            dt.Columns.Add("ID", typeof(string));
            dt.Columns.Add("DataInvio", typeof(string));
            dt.Columns.Add("Mittente", typeof(string));
            dt.Columns.Add("Ruolo", typeof(string));
            dt.Columns.Add("Ragione", typeof(string));
            dt.Columns.Add("DataScadenza", typeof(string));

            if (trasmissioni != null)
            {
                foreach (DocsPAWA.DocsPaWR.Trasmissione trasm in trasmissioni)
                {
                    DataRow row = dt.NewRow();
                    row["ID"]        = trasm.systemId;
                    row["DataInvio"] = trasm.dataInvio;
                    row["Mittente"]  = trasm.utente.descrizione;
                    row["Ruolo"]     = trasm.ruolo.descrizione;

                    if (trasm.trasmissioniSingole.Length > 0)
                    {
                        TrasmissioneSingola trasmSingola = trasm.trasmissioniSingole[0];
                        row["Ragione"]      = trasmSingola.ragione.descrizione;
                        row["DataScadenza"] = trasmSingola.dataScadenza;
                    }

                    dt.Rows.Add(row);
                }
            }

            ds.Tables.Add(dt);

            return(ds);
        }
Example #17
0
        /// <summary>
        /// Metodo per la trasmissione del documento ai destinatari interni (utenti che si trovano in ruoli cui sono associate
        /// le microfunzioni relative all'IS)
        /// </summary>
        /// <param name="settings">Impostazioni relative all'interoperabilità semplificata per il registro su cui è stato creato il documento</param>
        /// <param name="document">Documento da trasmettere</param>
        /// <param name="userRole">Ruolo utilizzato per la trasmissione</param>
        /// <param name="user">Utente mittente della trasmissione</param>
        /// <param name="privateDocument">Flag utilizzato per indicare se il documento è stato ricevuto marcato come privato dal mittente della spedizione</param>
        /// <param name="receiversInfo">Informaizoni sui destinari da contattare</param>
        /// <returns>Lista dei destinatari per cui si è verificato un problema</returns>
        private static List <ReceiverInfo> TransmitDocument(InteroperabilitySettings settings, SchedaDocumento document, Ruolo userRole, Utente user, bool privateDocument, List <ReceiverInfo> receiversInfo)
        {
            logger.Debug("RAFFREDDORE - Start");
            logger.Debug("RAFFREDDORE - " + (document == null ? "Documento nullo" : document.systemId));
            // Recupero delle informazioni sui corrispondenti interni all'amministrazione che devono ricevere
            // la trasmissione del documento
            List <Corrispondente> corrs = null;

            // Lista dei destinatari della spedizione per cui non sono stati individuati destinatari
            List <ReceiverInfo> uneachableReceivers = new List <ReceiverInfo>();

            try
            {
                logger.Debug("RAFFREDDORE - prima del caricamento destinatari");
                corrs = InteroperabilitaSemplificataManager.LoadTransmissionReceivers(settings, privateDocument, receiversInfo, out uneachableReceivers);

                if (corrs == null || corrs.Count == 0)
                {
                    logger.Error("Nessun destinatario trovato per la trasmissione del documento");
                    throw new RetrivingTransmissionReceiverException("Nessun destinatario trovato per la trasmissione del documento");
                }
            }
            catch (Exception e)
            {
                SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(document.systemId, true, e.Message);
                throw new RetrivingTransmissionReceiverException(e.Message);
            }

            // Creazione dell'oggetto trasmissione
            Trasmissione transmission = new Trasmissione();

            transmission.ruolo         = userRole;
            transmission.utente        = user;
            transmission.noteGenerali  = receiversInfo.Select(r => r.Code).Aggregate((r1, r2) => String.Format("{0} {1}", r1, r2));
            transmission.infoDocumento = new InfoDocumento(document);

            // Creazione della ragione di trasmissione per interoperabilità semplificata
            RagioneTrasmissione reason = InteroperabilitaSegnatura.getRagioneTrasm(user.idAmministrazione, "S");

            if (reason != null && privateDocument)
            {
                reason.eredita = "0";
            }

            if (reason != null)
            {
                logger.DebugFormat("IS - Effettuato caricamento della ragione di trasmissione per interoperabilità. Id ragione: {0}; Eredita: {1}", reason.systemId, reason.eredita);
            }

            // Creazione delle trasmissioni singole
            transmission.trasmissioniSingole = new System.Collections.ArrayList();
            foreach (var corr in corrs)
            {
                // Creazione della trasmissione singola
                TrasmissioneSingola singleTransmission = new TrasmissioneSingola()
                {
                    ragione = reason,
                    corrispondenteInterno = corr,
                    tipoTrasm             = "S",
                    tipoDest = TipoDestinatario.RUOLO
                };

                // Caricamento degli utenti del ruolo
                singleTransmission.trasmissioneUtente = new System.Collections.ArrayList();

                // Caricamento utenti del ruolo
                QueryCorrispondente qc = new QueryCorrispondente();
                qc.codiceRubrica = ((DocsPaVO.utente.Ruolo)corr).codiceRubrica;
                qc.idRegistri    = new System.Collections.ArrayList();
                qc.idRegistri.Add(settings.RegistryId);
                qc.idAmministrazione = user.idAmministrazione;
                qc.getChildren       = true;
                qc.fineValidita      = true;
                ArrayList users = addressBookManager.listaCorrispondentiIntMethod(qc);

                // Costruzione delle trasmissioni utente
                foreach (Utente u in users)
                {
                    u.dst = user.dst;
                    singleTransmission.trasmissioneUtente.Add(new TrasmissioneUtente()
                    {
                        utente = u
                    });
                }

                transmission.trasmissioniSingole.Add(singleTransmission);
            }

            // Esecuzione della trasmissione
            try
            {
                // INCIDENT 104707
                // modifica PALUMBO per consentire invio mail di notifica in caso di trasmissione ricevuta per IS
                // necessaria chiave "URL_PATH_IS" webconfig ws .
                string path = String.Empty;
                if (System.Configuration.ConfigurationManager.AppSettings["URL_PATH_IS"] != null)
                {
                    path = System.Configuration.ConfigurationManager.AppSettings["URL_PATH_IS"].ToString();
                }

                logger.Debug("RAFFREDDORE - url path is " + path);
                //ExecTrasmManager.saveExecuteTrasmMethod(String.Empty, transmission);
                Trasmissione resultTrasm = ExecTrasmManager.saveExecuteTrasmMethod(path, transmission);
                logger.Debug("RAFFREDDORE - Trasmissione nulla? " + (resultTrasm == null?"Nulla":"NON nulla"));
                //traccio l'evento di trasmssione
                string method = string.Empty, desc = string.Empty;
                if (resultTrasm != null &&
                    resultTrasm.infoDocumento != null &&
                    !string.IsNullOrEmpty(resultTrasm.infoDocumento.docNumber))
                {
                    List <string> includedList = new List <string>();
                    string        idCorr       = string.Empty;

                    foreach (DocsPaVO.trasmissione.TrasmissioneSingola single in resultTrasm.trasmissioniSingole)
                    {
                        logger.Warn("DEBUG: WriteLog-IS- " + resultTrasm.utente.userId + " " +
                                    resultTrasm.infoDocumento.docNumber + " " + resultTrasm.utente.idPeople + " " + resultTrasm.ruolo.idGruppo + " " + resultTrasm.utente.idAmministrazione + " " +
                                    resultTrasm.utente.idPeople + " " + method + " " + desc + " " + single.systemId);
                        method = "TRASM_DOC_" + single.ragione.descrizione.ToUpper().Replace(" ", "_");
                        desc   = "Trasmesso Documento predisposto in arrivo : " + resultTrasm.infoDocumento.docNumber.ToString();
                        idCorr = single.corrispondenteInterno.systemId;
                        if (!includedList.Contains(idCorr))
                        {
                            BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople,
                                                                   resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method,
                                                                   resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK, null, "1", single.systemId);
                            includedList.Add(idCorr);
                        }
                        else
                        {
                            BusinessLogic.UserLog.UserLog.WriteLog(resultTrasm.utente.userId, resultTrasm.utente.idPeople,
                                                                   resultTrasm.ruolo.idGruppo, resultTrasm.utente.idAmministrazione, method,
                                                                   resultTrasm.infoDocumento.docNumber, desc, DocsPaVO.Logger.CodAzione.Esito.OK, null, "0", single.systemId);
                        }
                        logger.Warn("DEBUG: WriteLog-IS- OK");
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error("RAFFREDDORE - Errore durante la trasmissione del documento ai destinatari");
                SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(document.systemId, true, "Errore nella trasmissione del documento ai ruoli designati");
                throw new ExecuteTransmissionException("Errore durante la trasmissione del documento ai destinatari");
            }

            // Se si è arrivati fin qui la trasmissione è stata effettuata correttamente, quindi viene aggiunta
            // una voce al log
            SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(document.systemId, false,
                                                                            String.Format("Documento con id {0} trasmesso correttamente ai destinatari", document.systemId));

            // Restituzione dei corrispondenti non troviati
            return(uneachableReceivers);
        }