Beispiel #1
0
        /// <summary>
        /// Metodo per la creazione delle informazioni sugli allegati del documento
        /// </summary>
        /// <param name="schedaDocumento">Documento da cui estrarre le informazioni</param>
        /// <param name="infoUtente">Informazioni sul richiedente</param>
        /// <returns>Lista delle informazioni sugli allegati</returns>
        private List <DocumentInfo> CreateAttachmentsInfo(SchedaDocumento schedaDocumento, InfoUtente infoUtente)
        {
            List <DocumentInfo> attachmentsInfo = new List <DocumentInfo>();

            foreach (Allegato allegato in ((Allegato[])schedaDocumento.allegati.ToArray(typeof(Allegato))).Where(
                         a => AllegatiManager.getIsAllegatoIS(a.versionId) == "0" && AllegatiManager.getIsAllegatoPEC(a.versionId) == "0")
                     )
            {
                string originalFileName = BusinessLogic.Documenti.FileManager.getOriginalFileName(null, allegato);
                if (String.IsNullOrEmpty(originalFileName))
                {
                    originalFileName = allegato.fileName;
                }

                attachmentsInfo.Add(new DocumentInfo()
                {
                    DocumentNumber         = allegato.docNumber,
                    DocumentServerLocation = allegato.docServerLoc,
                    FileName      = originalFileName,
                    FilePath      = allegato.path,
                    Name          = allegato.descrizione,
                    NumberOfPages = allegato.numeroPagine,
                    VersionId     = allegato.versionId,
                    VersionLabel  = allegato.versionLabel,
                    Version       = allegato.version
                });
            }

            return(attachmentsInfo);
        }
Beispiel #2
0
        /// <summary>
        /// Metodo per l'aggiunta dell'allegato al documento spedito
        /// </summary>
        /// <param name="documentId">Id del documento a aggiungere l'allegato</param>
        /// <param name="recData">Contenuto della ricevuta</param>
        /// <param name="userInfo">Informazioni sull'utente da utilizzare per l'aggiunta dell'allegato</param>
        /// <param name="messageId">Identificativo del messaggio</param>
        /// <param name="proofDate">Data di generazione della ricevuta</param>
        /// <param name="receiverCode">Codice del destinatario che ha generato la mancata consegna</param>
        /// <param name="senderUrl">Url del mittente</param>
        private static void AddAttachmentToDocument(String documentId, byte[] recData, InfoUtente userInfo, String messageId, DateTime proofDate, String receiverCode, String senderUrl)
        {
            // Creazione dell'oggetto allegato
            Allegato a = new Allegato();

            // Impostazione delle proprietà dell'allegato
            a.descrizione = String.Format("Ricevuta di mancata consegna - " + receiverCode);

            a.docNumber      = documentId;
            a.version        = "0";
            a.numeroPagine   = 1;
            a.TypeAttachment = 3;
            try
            {
                // Aggiunta dell'allegato al documento principale
                a = AllegatiManager.aggiungiAllegato(userInfo, a);

                // Set del flag in CHA_ALLEGATI_ESTERNO in Versions
                BusinessLogic.Documenti.AllegatiManager.setFlagAllegati_PEC_IS_EXT(a.versionId, a.docNumber, "I");

                // Associazione dell'immagine all'allegato
                FileDocumento fileDocument = new FileDocumento()
                {
                    content = recData, length = recData.Length, name = "MancataConsegna.pdf"
                };
                FileRequest request = a as FileRequest;
                String      err;
                FileManager.putFileRicevuteIs(ref request, fileDocument, userInfo, out err);

                // Aggiunta della notifica alla tabella delle notifiche
                SaveProofInRegistry(a, messageId, receiverCode, senderUrl, proofDate, documentId);


                if (!String.IsNullOrEmpty(err))
                {
                    SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, true,
                                                                                    String.Format("Errore durante l'associazione della ricevuta di mancata consegna al documento"));
                }
                else
                {
                    SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, false,
                                                                                    String.Format("Ricevuta di mancata consegna associata correttamente al documento"));
                }
            }
            catch (Exception e)
            {
                string message = e.Message + " " + e.StackTrace;
                message = message.Length > 3700 ? message.Substring(0, 3700) : message;
                SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, true,
                                                                                String.Format("Errore durante l'aggiunta dell'allegato con la ricevuta di mancata consegna al documento " + documentId + " : " + message));
            }
        }
Beispiel #3
0
        /// <summary>
        /// Funzione per la creazione dell'allegato
        /// </summary>
        /// <param name="rowData">L'oggetto con le informazioni sull'allegato da creare</param>
        /// <param name="userInfo">Le informazioni sull'utente che ha lanciato la procedura</param>
        /// <param name="role">Il ruolo con cui è stata lanciata la procedura</param>
        /// <param name="identificationData">I dati identificativi dell'allegato</param>
        /// <param name="sharedDirectoryPath">Il path i cui è posizionato il file da allegare al documento</param>
        /// <param name="importResults">L'oggetto con le informazioni sul documento cui si desidera aggiungere l'allegato</param>
        protected void CreateDocument(DocumentRowData rowData, InfoUtente userInfo, Ruolo role, out string identificationData, string ftpAddress, ImportResult importResults, String ftpUsername, String ftpPassword)
        {
            #region Dichiarazione variabili

            // L'allegato da agggiungere
            Allegato attachment = null;

            #endregion

            // Se il documento non è stato creato, eccezione
            if (String.IsNullOrEmpty(importResults.DocNumber))
            {
                throw new Exception("Il documento cui si desidera aggiungere un allegato non è stato creato con successo.");
            }

            // Creazione dell'oggetto Allegato
            attachment = this.CreateAttachmentObject(
                rowData.Obj,
                importResults.DocNumber);

            // Aggiunta dell'allegato al documento
            try
            {
                AllegatiManager.aggiungiAllegato(userInfo, attachment);
            }
            catch
            {
                throw new Exception("Errore durante l'aggiunta dell'allegato al documento specificato.");
            }

            // Acquisizione del file (se specificato il path)
            if (!String.IsNullOrEmpty(rowData.Pathname))
            {
                this.AcquireFile(
                    rowData.Pathname,
                    rowData.AdminCode,
                    userInfo,
                    ftpAddress,
                    attachment,
                    ftpUsername,
                    ftpPassword,
                    rowData);
            }



            // Impostazione delle informazioni sull'allegato creato
            identificationData = String.Format(
                "Id documento: {0}",
                attachment.docNumber);
        }
Beispiel #4
0
        private static SchedaDocumento CreateSchedaDocumentoFromAttestato(AttestatoVO att, InfoUtente infoUtente, Ruolo ruolo, string idRegistro)
        {
            SchedaDocumento sd  = DocManager.NewSchedaDocumento(infoUtente);
            Oggetto         ogg = new Oggetto();

            ogg.idRegistro  = idRegistro;
            ogg.descrizione = att.Oggetto;
            sd.oggetto      = ogg;
            // Impostazione del registro
            sd.registro = RegistriManager.getRegistro(idRegistro);
            // Impostazione del tipo atto
            sd.tipoProto                 = "";
            sd.template                  = ProfilazioneDocumenti.getTemplateById(att.IdTemplate);
            sd.tipologiaAtto             = new TipologiaAtto();
            sd.tipologiaAtto.descrizione = sd.template.DESCRIZIONE;
            sd.tipologiaAtto.systemId    = sd.template.SYSTEM_ID.ToString();
            sd.daAggiornareTipoAtto      = true;
            sd = DocSave.addDocGrigia(sd, infoUtente, ruolo);
            Allegato all = new Allegato();

            all.descrizione = "ALL1";
            all.docNumber   = sd.docNumber;
            all.version     = "0";
            string idPeopleDelegato = "0";

            if (infoUtente.delegato != null)
            {
                idPeopleDelegato = infoUtente.delegato.idPeople;
            }
            all.idPeopleDelegato = idPeopleDelegato;

            // Impostazione del repositoryContext associato al documento
            all.repositoryContext = sd.repositoryContext;
            all.position          = 1;
            Allegato resAll = AllegatiManager.aggiungiAllegato(infoUtente, all);

            sd.allegati = new ArrayList();
            sd.allegati.Add(resAll);
            return(sd);
        }
Beispiel #5
0
        /// <summary>
        /// Metodo per l'aggiunta dell'allegato al documento
        /// </summary>
        /// <param name="documentId">Id del documento cui aggiungere l'allegato</param>
        /// <param name="recData">Contenuto della ricevuta</param>
        /// <param name="userInfo">Inormazioni sull'utente utilizzato per la generazione dell'allegato</param>
        /// <param name="messageId">Identificativo del messaggio ricevuto</param>
        /// <param name="proofDate">Data di generazione della ricevuta</param>
        /// <param name="receiverCode">Codice del destinatario per cui generare la ricevuta</param>
        /// <param name="senderUrl">Url del mittente</param>
        private static void AddAttachmentToDocument(String documentId, byte[] recData, InfoUtente userInfo, String messageId, DateTime proofDate, String receiverCode, String senderUrl)
        {
            // Creazione dell'oggetto allegato
            Allegato a = new Allegato();

            // Impostazione delle proprietà dell'allegato
            a.descrizione = String.Format("Ricevuta di avvenuta consegna - " + receiverCode);

            a.docNumber = documentId;
            a.version = "0";
            a.numeroPagine = 1;
            a.TypeAttachment = 3;
            try
            {
                bool usingTransactionContext = string.IsNullOrEmpty(DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "BE_NOT_USING_TRANSACTION_CONTEXT")) ||
                    !DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "BE_NOT_USING_TRANSACTION_CONTEXT").Equals("1");
                // Aggiunta dell'allegato al documento principale
                if (usingTransactionContext)
                {
                    using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
                    {
                        logger.Debug("INIZIO aggiungiAllegato per il documento " + documentId);
                        a = AllegatiManager.aggiungiAllegato(userInfo, a);
                        logger.Debug("FINE aggiungiAllegato per il documento " + documentId + ". Id allegato creato: " + a.docNumber + " con id versione: " + a.versionId);

                        // Set del flag in CHA_ALLEGATI_ESTERNO in Versions
                        logger.Debug("INIZIO setFlagAllegati_PEC_IS_EXT per l'allegato con docnumber" + a.docNumber + "e version id: " + a.versionId + ". Documento principale:" + documentId);
                        bool resultSetFlag = BusinessLogic.Documenti.AllegatiManager.setFlagAllegati_PEC_IS_EXT(a.versionId, a.docNumber, "I");
                        logger.Debug("FINE setFlagAllegati_PEC_IS_EXT per l'allegato " + a.docNumber + "con esito: " + resultSetFlag + ". Documento principale:" + documentId);

                        // Associazione dell'immagine all'allegato
                        FileDocumento fileDocument = new FileDocumento() { content = recData, length = recData.Length, name = "AvvenutaConsegna.pdf" };
                        FileRequest request = a as FileRequest;
                        String err;
                        logger.Debug("INIZIO putFile per l'allegato " + a.docNumber);
                        FileManager.putFileRicevuteIs(ref request, fileDocument, userInfo, out err);
                        logger.Debug("FINE putFile per l'allegato " + a.docNumber);

                        // Aggiunta della notifica alla tabella delle notifiche
                        SaveProofInRegistry(a, messageId, receiverCode, senderUrl, proofDate, documentId);


                        if (!String.IsNullOrEmpty(err))
                        {
                            logger.Error("Errore durante la procedura di putfile per l'allegato: " + a.docNumber + ". Testo dell'errore: " + err);
                            SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, true,
                                String.Format("Errore durante l'associazione della ricevuta di avvenuta consegna inviata da al documento"));
                        }
                        else
                        {
                            logger.Debug("Putfile avvenuta correttamente per l'allegato  " + a.docNumber);
                            SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, false,
                                String.Format("Ricevuta di avvenuta consegna associata correttamente al documento"));
                        }

                        if (resultSetFlag && string.IsNullOrEmpty(err))
                        {
                            transactionContext.Complete();
                        }
                    }
                }
                else
                {
                    logger.Debug("INIZIO aggiungiAllegato per il documento " + documentId);
                    a = AllegatiManager.aggiungiAllegato(userInfo, a);
                    logger.Debug("FINE aggiungiAllegato per il documento " + documentId + ". Id allegato creato: " + a.docNumber + " con id versione: " + a.versionId);

                    // Set del flag in CHA_ALLEGATI_ESTERNO in Versions
                    logger.Debug("INIZIO setFlagAllegati_PEC_IS_EXT per l'allegato con docnumber" + a.docNumber + "e version id: " + a.versionId + ". Documento principale:" + documentId);
                    bool resultSetFlag = BusinessLogic.Documenti.AllegatiManager.setFlagAllegati_PEC_IS_EXT(a.versionId, a.docNumber, "I");
                    logger.Debug("FINE setFlagAllegati_PEC_IS_EXT per l'allegato " + a.docNumber + "con esito: " + resultSetFlag + ". Documento principale:" + documentId);

                    // Associazione dell'immagine all'allegato
                    FileDocumento fileDocument = new FileDocumento() { content = recData, length = recData.Length, name = "AvvenutaConsegna.pdf" };
                    FileRequest request = a as FileRequest;
                    String err;
                    logger.Debug("INIZIO putFile per l'allegato " + a.docNumber);
                    FileManager.putFileRicevuteIs(ref request, fileDocument, userInfo, out err);
                    logger.Debug("FINE putFile per l'allegato " + a.docNumber);

                    // Aggiunta della notifica alla tabella delle notifiche
                    SaveProofInRegistry(a, messageId, receiverCode, senderUrl, proofDate, documentId);


                    if (!String.IsNullOrEmpty(err))
                    {
                        logger.Error("Errore durante la procedura di putfile per l'allegato: " + a.docNumber + ". Testo dell'errore: " + err);
                        SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, true,
                            String.Format("Errore durante l'associazione della ricevuta di avvenuta consegna inviata da al documento"));
                    }
                    else
                    {
                        logger.Debug("Putfile avvenuta correttamente per l'allegato  " + a.docNumber);
                        SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, false,
                            String.Format("Ricevuta di avvenuta consegna associata correttamente al documento"));
                    }
                }
            }
            catch (Exception e)
            {
                logger.Error("Errore in AddAttachmentToDocument per l'allegato: " + a.docNumber + ". Errore: " + e.Message);
                string message = e.Message + " " + e.StackTrace;
                message = message.Length > 3700 ? message.Substring(0, 3700) : message;
                SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(documentId, true,
                    String.Format("Errore durante l'aggiunta dell'allegato con la ricevuta di avvenuta consegna al documento " + documentId + " : " + message));
            }
        }
Beispiel #6
0
        /// <summary>
        /// Metodo per l'aggiunta degli allegati ad un documento
        /// </summary>
        /// <param name="docNumber">Numero del documento cui aggiungere gli allegati</param>
        /// <param name="attachments">Informazioni sugli allegati da creare</param>
        /// <param name="userInfo">Informazioni sull'utente utilizzato per la creazione del predisposto in ingresso</param>
        /// <param name="senderAdministrationId">Id dell'amministrazione mittente della richiesta di interoperabilità</param>
        /// <param name="senderFileManagerUrl">Url del file manager per il download dell'eventuale file associato ad un allegato</param>
        private static void AddAttachments(String docNumber, List <DocumentInfo> attachments, InfoUtente userInfo, String senderAdministrationId, String senderFileManagerUrl)
        {
            int i = 0;

            foreach (DocumentInfo attachment in attachments)
            {
                // Creazione dell'oggetto allegato
                Allegato a = new Allegato();

                // Impostazione delle proprietà dell'allegato
                if (String.IsNullOrEmpty(attachment.Name))
                {
                    a.descrizione = String.Format("Allegato {0}", i);
                }
                else
                {
                    a.descrizione = attachment.Name;
                }

                a.docNumber    = docNumber;
                a.fileName     = InteroperabilitaSegnatura.getFileName(attachment.FileName);
                a.version      = "0";
                a.numeroPagine = attachment.NumberOfPages;

                // Aggiunta dell'allegato al documento principale
                try
                {
                    a = AllegatiManager.aggiungiAllegato(userInfo, a);
                }
                catch (Exception ex)
                {
                    SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(
                        docNumber,
                        true,
                        String.Format("Errore durante l'aggiunta dell'allegato '{0}'. Messaggio eccezione: {1}",
                                      a.descrizione,
                                      ex.Message));

                    throw new CreatingDocumentException(
                              String.Format("Errore durante l'aggiunta dell'allegato '{0}'", attachment.Name));
                }
                string errPutFile = "";
                try
                {
                    // Associazione dell'immagine all'allegato
                    FileRequest request = a as FileRequest;
                    if (!String.IsNullOrEmpty(attachment.FileName))
                    {
                        SimplifiedInteroperabilityFileManager.DownloadFile(
                            attachment,
                            senderAdministrationId,
                            request,
                            userInfo,
                            senderFileManagerUrl,
                            out errPutFile);
                    }

                    if (!string.IsNullOrEmpty(errPutFile))
                    {
                        throw new Exception("Errore durante l'associazione dell'immagine al documento principale");
                    }
                }
                catch (Exception e)
                {
                    SimplifiedInteroperabilityLogAndRegistryManager.InsertItemInLog(
                        a.docNumber,
                        true,
                        String.Format("Errore durante l'associazione dell'immagine per l'allegato '{0}'. Messaggio eccezione: {1}",
                                      a.descrizione,
                                      e.Message));
                    if (!string.IsNullOrEmpty(errPutFile) && errPutFile.Contains("formato file"))
                    {
                        throw new DownloadDocumentException(
                                  String.Format("Errore durante l'associazione dell'immagine all'allegato '{0}'. {1} destinataria.", attachment.Name, errPutFile));
                    }
                    else
                    {
                        throw new DownloadDocumentException(
                                  String.Format("Errore durante l'associazione dell'immagine all'allegato '{0}'", attachment.Name));
                    }
                }
                i++;
            }
        }