Beispiel #1
0
        /// <summary>
        /// Metodo per l'invio della ricevuta di conferma di ricezione
        /// al mittente del messaggio di interoperabilità
        /// </summary>
        /// <param name="idProfile">Id del documento per cui inviare la conferma di ricezione</param>
        /// <param name="userId">Usr id dell'utente mittente dell'invio della ricevuta</param>
        /// <param name="adminId">Id dell'amministrazione mittente della ricevuta</param>
        /// <param name="recCode">Codice del destinatario che invia la conferma di ricezione</param>
        private static void SendDocumentReceivedProofToSender(String idProfile, String userId, String adminId, String recCode)
        {
            logger.DebugFormat("Invio ricevuta di conferma di ricezione per interoperabilità semplificata del documento con id {0}", idProfile);

            // Recupero delle informazioni sul mittente del documento
            using (DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata dbManager = new DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata())
            {
                RecordInfo sender, receiver;
                String     senderUrl, receiverCode;
                if (dbManager.LoadSenderDocInfo(idProfile, out sender, out receiver, out senderUrl, out receiverCode))
                {
                    String rec = recCode;
                    // Se la recCode è vuoto, la notifica viene inviata per tutti i destinatari
                    if (String.IsNullOrEmpty(recCode))
                    {
                        rec = receiverCode;
                    }

                    // Invio della ricevuta di conferma ricezione
                    SendProof(sender, receiver, senderUrl, idProfile, userId, adminId, rec);
                }
                else
                {
                    SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(idProfile, true,
                                                                                    String.Format("Errore nel recupero dei dati per la creazione della ricevuta di conferma ricezione"));
                    logger.ErrorFormat("Errore nel recupero dei dati per la creazione della ricevuta di conferma ricezione per il documento con id {0}", idProfile);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Metodo per verificare se un RF compare fra i destinatari di una spedizione per un dato documento. L'individuazione
        /// si basa sul fatto che nel registro delle richieste di interoperabilità, è presente un campo (ReceiverCode) in cui
        /// sono riportati tutti i destinatari con il codice nel formato RC, racchiusi fra singoli apici e separati da virgola
        /// </summary>
        /// <param name="rfCode">Codice RF da verificare</param>
        /// <param name="documentId">Id del documento in cui verficare se compare l'RF come destinatario</param>
        /// <param name="administrationCode">Codice dell'amministrazione</param>
        /// <returns>Codice del corrispondente del destinatario</returns>
        internal static String IsRfReceiverOfDocumentTransmission(String rfCode, String documentId, String administrationCode)
        {
            // Costruzione del codice del corrispondente
            String corrCode = String.Format("{0}-{1}", administrationCode, rfCode);

            using (DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata simpDb = new DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata())
            {
                if (simpDb.IsCorrInReceivers(documentId, corrCode))
                {
                    return(corrCode);
                }
                else
                {
                    return(String.Empty);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// Metodo per il salvataggio delle informazioni su una ricevuta di conferma di ricezione
        /// </summary>
        /// <param name="senderRecordInfo">Informazioni sul protocollo mittente</param>
        /// <param name="receiverRecordInfo">Informaizoni sul protocollo destinatario</param>
        /// <param name="receiverUrl">Url del destinatario della spedizione</param>
        /// <param name="receiverCode">Codice del destinatario che ha inviato la conferma di ricezione</param>
        public static void SaveReceivedProofData(
            RecordInfo senderRecordInfo,
            RecordInfo receiverRecordInfo,
            String receiverUrl,
            String receiverCode)
        {
            using (DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata interopDb = new DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata())
            {
                bool retVal = interopDb.SaveReceivedProofData(senderRecordInfo, receiverRecordInfo, receiverUrl, receiverCode);

                SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog("", !retVal,
                                                                                String.Format("Salvataggio delle informazioni sulla ricevuta di conferma di ricezione relativa al protocollo {0} creato in data {1}, {2}",
                                                                                              senderRecordInfo.RecordNumber, senderRecordInfo.RecordDate,
                                                                                              retVal ? "riuscito correttamente" : "non riuscito"));

                logger.DebugFormat("Salvataggio delle informazioni sulla ricevuta di conferma di ricezione, per l'interoperabilità semplificata, relativa al protocollo {0} creato in data {1}, {2}",
                                   senderRecordInfo.RecordNumber, senderRecordInfo.RecordDate,
                                   retVal ? "riuscito correttamente" : "non riuscito");
            }
        }
Beispiel #4
0
        /// <summary>
        /// Metodo per l'aggiunta della ricevuta di avvenuta consegna al documento spedito
        /// </summary>
        /// <param name="documentId">Id del documento cui aggiungere l'allegato</param>
        /// <param name="messageId">Identificativo del messaggio ricevuto</param>
        /// <param name="data">Contenuto della ricevuta</param>
        /// <param name="proofDate">Data di generazione della ricevuta</param>
        /// <param name="receiverCode">Codice del destinatario raggiunto</param>
        private static void AddProofToDocument(String documentId, String messageId, byte[] data, DateTime proofDate, String receiverCode)
        {
            SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, false, "Aggiunta della Ricevuta di avvenuta consegna al documento");

            String authorId, creatorRole;
            using (DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata dbInterop = new DocsPaDB.Query_DocsPAWS.InteroperabilitaSemplificata())
            {
                // Recupero dell'id del documento e degli id di utente e ruolo con cui creare l'allegato
                dbInterop.LoadDataForDeliveredProof(documentId, out authorId, out creatorRole);

                // Recupero delle informazioni sull'utente
                Utente user = UserManager.getUtenteById(authorId);
                user.dst = UserManager.getSuperUserAuthenticationToken();
                Ruolo role = UserManager.getRuoloById(creatorRole);
                InfoUtente userInfo = UserManager.GetInfoUtente(user, role);

                // Creazione e aggiunta dell'allegato
                AddAttachmentToDocument(documentId, data, userInfo, messageId, proofDate, receiverCode, InteroperabilitaSemplificataManager.GetUrl(userInfo.idAmministrazione));

            }
        }