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