public static DocsPaVO.documento.SchedaDocumento getDettaglioMobile(DocsPaVO.utente.InfoUtente infoUtente, string idProfile, string docNumber) { DocsPaDB.Query_DocsPAWS.Mobile.DocumentiMobile doc = new DocsPaDB.Query_DocsPAWS.Mobile.DocumentiMobile(); DocsPaVO.documento.SchedaDocumento schedaDoc = new DocsPaVO.documento.SchedaDocumento(); schedaDoc = doc.GetDettaglioMobile(infoUtente, idProfile, docNumber, true); if (schedaDoc == null) { throw new Exception(); } else { // Reperimento informazioni se il documento è in stato checkout, // solo per i documenti non di tipo stampa registro schedaDoc.checkOutStatus = BusinessLogic.CheckInOut.CheckInOutServices.GetCheckOutStatus(schedaDoc.systemId, schedaDoc.docNumber, infoUtente); } try { DocsPaDocumentale.Documentale.DocumentManager docManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); DocsPaVO.documento.Documento docPrinc = (schedaDoc.documenti[0] as DocsPaVO.documento.Documento); string ext = docManager.GetFileExtension(schedaDoc.docNumber, docPrinc.version); DocsPaVO.documento.Applicazione app = new DocsPaVO.documento.Applicazione(); app.estensione = ext; docPrinc.applicazione = app; schedaDoc.documenti[0] = docPrinc; } catch (Exception) { } return(schedaDoc); }
private string SaveDocument(InfoUtente userInfo, Ruolo role, SchedaDocumento document, FileDocumento fileDoc, out Ruolo[] superiori) { //Salvataggio del documento DocsPaDocumentale.Documentale.DocumentManager docManager = new DocsPaDocumentale.Documentale.DocumentManager(userInfo); //Salvataggio dell'oggetto document = ProtoManager.addOggettoLocked(userInfo.idAmministrazione, document); Ruolo[] ruoliSuperiori; //if (docManager.CreateDocumentoStampaRegistro(document, role, out ruoliSuperiori)) if (docManager.CreateDocumentoGrigio(document, role, out ruoliSuperiori)) //if(docManager.CreateDocumentoGrigio(document, role)) { //Notifica evento documento creato //DocsPaDocumentale.Interfaces.IAclEventListener eventsNotification = new DocsPaDocumentale.Documentale.AclEventListener(userInfo); //eventsNotification.DocumentoCreatoEventHandler(document, role, ruoliSuperiori); //Salvataggio del file associato al documento DocsPaVO.documento.FileRequest fileRequest = (DocsPaVO.documento.FileRequest)document.documenti[0]; fileRequest = BusinessLogic.Documenti.FileManager.putFile(fileRequest, fileDoc, userInfo); if(fileRequest == null) throw new ApplicationException("Si è verificato un errore nell'upload del documento per la stampa del registro di conservazione"); } superiori = ruoliSuperiori; if (superiori == null) superiori = new Ruolo[] { }; //Restituzione del numero documento return document.docNumber; }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="schedaDoc"></param> /// <param name="enableUffRef"></param> /// <param name="saveUffRef"></param> /// <returns></returns> private static DocsPaVO.documento.SchedaDocumento salvaModifiche(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDoc, bool enableUffRef, out bool saveUffRef) { if (!AllegatiManager.isEnabledProfilazioneAllegati() && schedaDoc.documentoPrincipale != null) { string errorMessage = "Errore nell'operazione 'BusinessLogic.Documenti.DocSave.salvaModifiche': la profilazione dell'allegato non è attivata."; logger.Debug(errorMessage); throw new ApplicationException(errorMessage); } logger.Debug("salvaModifiche"); bool daAggiornareUffRef = false; DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); if (!documentManager.SalvaDocumento(schedaDoc, enableUffRef, out daAggiornareUffRef)) { string msg = "Errore nel'operazione di salva modifiche del documento"; logger.Debug(msg); throw new ApplicationException(msg); } saveUffRef = daAggiornareUffRef; //AS400 if (schedaDoc != null && schedaDoc.protocollo != null && schedaDoc.protocollo.segnatura != null && schedaDoc.protocollo.segnatura != "") { AS400.AS400.setAs400(schedaDoc, DocsPaAS400.Constants.CREATE_MODIFY_OPERATION); } return(schedaDoc); }
/// <summary> /// Informa se la versione ha associato un file con impressa la segnatura /// </summary> /// <param name="objSicurezza"></param> /// <param name="versionId"></param> /// <returns> /// bool che indica se la versione ha associato un file con impressa segnatura o meno /// </returns> public static bool IsVersionWithSegnature(DocsPaVO.utente.InfoUtente objSicurezza, string versionId) { logger.Debug("IsVersionWithSegnature"); DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(objSicurezza); return(documentManager.IsVersionWithSegnature(versionId)); }
/// <summary> /// /// </summary> /// <param name="userInfo"></param> /// <param name="docNumber"></param> /// <returns></returns> public static bool AssignDocumentVisibilityToResponsable(InfoUtente userInfo, String docNumber, String counterId, String rfId, String registryId, out int rightsOut) { DocsPaDocumentale.Documentale.DocumentManager docManager = new DocsPaDocumentale.Documentale.DocumentManager(userInfo); DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager repManager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager(); // Recupero dell'id del ruolo responsabile e dei diritti da assegnargli RegistroRepertorioSingleSettings.ResponsableRight rights = RegistroRepertorioSingleSettings.ResponsableRight.R; String responsableIdGroup = repManager.GetResponsableRoleId(counterId, rfId, registryId, out rights); bool retVal = true; if (!String.IsNullOrEmpty(responsableIdGroup)) { retVal = docManager.AddPermissionToRole(new DirittoOggetto() { accessRights = rights == RegistroRepertorioSingleSettings.ResponsableRight.R ? 45 : 63, personorgroup = responsableIdGroup, tipoDiritto = TipoDiritto.TIPO_ACQUISITO, idObj = docNumber, soggetto = new Ruolo() { tipoCorrispondente = "R", idGruppo = responsableIdGroup } }); } rightsOut = (rights == RegistroRepertorioSingleSettings.ResponsableRight.R ? 45 : 63); return(retVal); }
/// <summary> /// Setta a 1 cha_segnatura se la versione contiene un documento in formato pdf, con segnatura impressa /// </summary> /// <param name="objSicurezza"></param> /// <param name="versionId"></param> /// <returns> /// bool che indica l'esito dell'operazione di update /// </returns> public static bool ModifyVersionSegnatura(DocsPaVO.utente.InfoUtente objSicurezza, string versionId) { logger.Debug("updateSegnature"); DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(objSicurezza); return(documentManager.ModifyVersionSegnatura(versionId)); }
private string SaveDocument(InfoUtente infoUtente, Ruolo role, SchedaDocumento schedaDoc, FileDocumento fileDoc) { //Salvataggio del documento DocsPaDocumentale.Documentale.DocumentManager docManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); //Salvataggio dell'oggetto schedaDoc = ProtoManager.addOggettoLocked(infoUtente.idAmministrazione, schedaDoc); Ruolo[] ruoliSuperiori; if (docManager.CreateDocumentoGrigio(schedaDoc, role, out ruoliSuperiori)) { //Salvataggio del file associato al documento DocsPaVO.documento.FileRequest fileRequest = (DocsPaVO.documento.FileRequest)schedaDoc.documenti[0]; fileRequest = BusinessLogic.Documenti.FileManager.putFile(fileRequest, fileDoc, infoUtente); if (fileRequest == null) { throw new ApplicationException("Si è verificato un errore nell'upload del documento di certificazione"); } } /* * superiori = ruoliSuperiori; * if (superiori == null) * superiori = new Ruolo[] { }; * */ //restituzione numero documento return(schedaDoc.docNumber); }
/// <summary> /// /// </summary> /// <param name="docNumber"></param> /// <param name="objSicurezza"></param> /// <returns></returns> public static string getLatestVersionID(string docNumber, DocsPaVO.utente.InfoUtente objSicurezza) { logger.Debug("getLatestVersionID"); string versionId = null; DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(objSicurezza); versionId = documentManager.GetLatestVersionId(docNumber); return(versionId); }
/// <summary> /// </summary> /// <param name="infoUtente"></param> /// <param name="docNumber"></param> /// <param name="version"></param> /// <param name="versionId"></param> /// <param name="versionLabel"></param> /// <param name="logger"></param> /// <param name="debug"></param> /// <returns></returns> public static byte[] getDocument(DocsPaVO.utente.InfoUtente infoUtente, string docNumber, string version, string versionId, string versionLabel) { DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); byte[] result = documentManager.GetFile(docNumber, version, versionId, versionLabel); if (result == null) { //TODO: gestire la throw throw new Exception(); } return(result); }
/// <summary> /// Rimozione di un allegato /// </summary> /// <param name="allegato"></param> /// <param name="infoUtente"></param> public static bool rimuoviAllegato(DocsPaVO.documento.Allegato allegato, DocsPaVO.utente.InfoUtente infoUtente) { bool retValue = false; if (allegato.repositoryContext != null) { // Rimozione dell'allegato nell'ambito del repository context SessionRepositoryFileManager fm = BusinessLogic.Documenti.SessionRepositoryFileManager.GetFileManager(allegato.repositoryContext); // Verifica esistenza file acquisito nel repository context if (fm.ExistFile(allegato)) { fm.RemoveFile(allegato); } retValue = true; } else { // Controllo su stato congelato DocumentConsolidation.CanExecuteAction(infoUtente, allegato.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.RemoveAttatchments, true); using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); retValue = documentManager.RemoveAttatchment(allegato); if (retValue) { transactionContext.Complete(); } } } return(retValue); }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="allegato"></param> /// <param name="documento"></param> /// <returns></returns> public static bool scambiaAllegatoDocumento(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.Allegato allegato, DocsPaVO.documento.Documento documento) { // Controllo su stato congelato DocumentConsolidation.CanExecuteAction(infoUtente, documento.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.ModifyVersions, true); bool retValue = false; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); retValue = documentManager.ScambiaAllegatoDocumento(allegato, documento); if (retValue) { transactionContext.Complete(); } } return(retValue); }
/// <summary> /// Modifica dei dati di un allegato /// </summary> /// <param name="allegato"></param> /// <param name="debug"></param> public static void modificaAllegato(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.Allegato allegato) { if (allegato.repositoryContext != null) { // Modifica allegato gestito mediante il repository context } else { // Controllo su stato congelato DocumentConsolidation.CanExecuteAction(infoUtente, allegato.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.ModifyAttatchments, true); using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); documentManager.ModifyAttatchment(allegato); transactionContext.Complete(); } } }
/// <summary> /// Rimozione di una versione del documento /// </summary> /// <param name="fileRequest"></param> /// <param name="infoUtente"></param> /// <returns></returns> public static bool removeVersion(DocsPaVO.documento.FileRequest fileRequest, DocsPaVO.utente.InfoUtente infoUtente) { if (fileRequest.repositoryContext == null) { // Verifica stato di consolidamento del documento DocumentConsolidation.CanExecuteAction(infoUtente, fileRequest.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.RemoveVersions, true); } logger.Debug("removeVersion"); bool result = false; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); result = documentManager.RemoveVersion(fileRequest); if (result) { transactionContext.Complete(); } } return(result); }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="fileReq"></param> public static void modificaVersione(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.FileRequest fileReq) { try { if (fileReq.repositoryContext == null) { // Verifica stato di consolidamento del documento DocumentConsolidation.CanExecuteAction(infoUtente, fileReq.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.RemoveVersions, true); } using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); documentManager.ModifyVersion(fileReq); transactionContext.Complete(); } } catch (Exception ex) { logger.Debug(ex.Message); } }
/// <summary> /// </summary> /// <param name="fileRequest"></param> /// <param name="infoUtente"></param> /// <param name="daInviare"></param> /// <returns></returns> public static DocsPaVO.documento.FileRequest addVersion(DocsPaVO.documento.FileRequest fileRequest, DocsPaVO.utente.InfoUtente infoUtente, bool daInviare) { logger.Info("BEGIN"); logger.Debug("addVersion"); if (fileRequest.repositoryContext != null) { if (!daInviare) { // Inserimento della versione nel repositorycontext (il documento ancora non è stato salvato) int newVersion, newVersionLabel; Int32.TryParse(fileRequest.version, out newVersion); Int32.TryParse(fileRequest.versionLabel, out newVersionLabel); fileRequest.subVersion = "!"; fileRequest.version = (newVersion + 1).ToString(); fileRequest.versionLabel = (newVersionLabel + 1).ToString(); } } else { // Verifica stato di consolidamento del documento DocumentConsolidation.CanExecuteAction(infoUtente, fileRequest.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.AddVersions, true); if (!LibroFirma.LibroFirmaManager.CanExecuteAction(fileRequest, infoUtente)) { throw new Exception("Non è possibile creare la versione poichè il documento principale è in libro firma"); } DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); if (!documentManager.AddVersion(fileRequest, daInviare)) { fileRequest = null; } } logger.Info("END"); return(fileRequest); }
/// <summary> /// /// </summary> /// <param name="userInfo"></param> /// <param name="docNumber"></param> /// <param name="counterId"></param> /// <param name="rfId"></param> /// <param name="registryId"></param> /// <param name="responsableIdGroup"></param> /// <returns></returns> public static bool AssignDocumentVisibilityToRole(InfoUtente userInfo, String docNumber, String counterId, String rfId, String registryId, String roleGroupId, int rights) { DocsPaDocumentale.Documentale.DocumentManager docManager = new DocsPaDocumentale.Documentale.DocumentManager(userInfo); DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager repManager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager(); bool retVal = true; if (!String.IsNullOrEmpty(roleGroupId)) { retVal = docManager.AddPermissionToRole(new DirittoOggetto() { accessRights = rights, personorgroup = roleGroupId, tipoDiritto = TipoDiritto.TIPO_ACQUISITO, idObj = docNumber, soggetto = new Ruolo() { tipoCorrispondente = "R", idGruppo = roleGroupId } }); } return(retVal); }
// public static DocsPaVO.documento.SchedaDocumento predisponiAllaProtocollazione(DocsPaVO.utente.InfoUtente infoUtente, //string idAmministrazione, string idPeople, string idCorrGlobali, DocsPaVO.documento.SchedaDocumento schedaDoc, string sede) /// <summary> /// </summary> /// <param name="schedaDoc"></param> /// <param name="objSicurezza"></param> /// <param name="debug"></param> /// <returns></returns> public static DocsPaVO.documento.SchedaDocumento predisponiAllaProtocollazione(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDoc) { // Verifica stato di consolidamento del documento DocumentConsolidation.CanExecuteAction(infoUtente, schedaDoc.systemId, DocumentConsolidation.ConsolidationActionsDeniedEnum.PrepareProtocol, true); logger.Debug("predisponiAllaProtocollazione"); string incestino = string.Empty; //controllo se doc in cestino incestino = BusinessLogic.Documenti.DocManager.checkdocInCestino(schedaDoc.docNumber); if (incestino != "" && incestino == "1") { throw new Exception("Il documento è stato rimosso, non è più possibile modificarlo"); } DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); if (!documentManager.PredisponiProtocollazione(schedaDoc)) { string message = "Non è stato possibile predisporre il documento alla protocollazione"; logger.Debug(message); throw new ApplicationException(message); } if (schedaDoc.documenti != null && !string.IsNullOrEmpty(((DocsPaVO.documento.Documento)schedaDoc.documenti[0]).dataArrivo)) { string firstParam = "DTA_ARRIVO =" + DocsPaDbManagement.Functions.Functions.ToDate(((DocsPaVO.documento.Documento)schedaDoc.documenti[0]).dataArrivo); new DocsPaDB.Query_DocsPAWS.Documenti().UpdateVersions(firstParam, schedaDoc.docNumber); } return(schedaDoc); }
/// <summary> /// </summary> /// <param name="schedaDoc"></param> /// <param name="objSicurezza"></param> /// <param name="objRuolo"></param> /// <param name="debug"></param> /// <returns></returns> public static DocsPaVO.documento.SchedaDocumento addDocGrigia(DocsPaVO.documento.SchedaDocumento schedaDoc, DocsPaVO.utente.InfoUtente objSicurezza, DocsPaVO.utente.Ruolo objRuolo) { logger.Info("BEGIN"); try { semProtNuovo.WaitOne(); // Avvio del contesto transazionale using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { //SOSTITUISCO IL CARATTERE SPECIALE if (schedaDoc.oggetto.descrizione.Contains("–")) { schedaDoc.oggetto.descrizione = schedaDoc.oggetto.descrizione.Replace("–", "-"); } // verifico i dati di ingresso ProtoManager.checkInputData(objSicurezza.idAmministrazione, schedaDoc); logger.Debug("nomeUtente=" + schedaDoc.userId); //add massimo digregorio carica dati protocollatore in schedaProtocollo schedaDoc = getDatiProtocollatore(schedaDoc, objRuolo, objSicurezza); schedaDoc = getDatiCreatore(schedaDoc, objRuolo, objSicurezza); // creo il nuovo documento DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(objSicurezza); DocsPaVO.utente.Ruolo[] ruoliSuperiori; List <DocsPaVO.documento.FileRequest> versions = new List <DocsPaVO.documento.FileRequest>(); if (schedaDoc.documenti != null && schedaDoc.documenti.Count > 0) { versions = new List <DocsPaVO.documento.FileRequest>((DocsPaVO.documento.FileRequest[])schedaDoc.documenti.ToArray(typeof(DocsPaVO.documento.FileRequest))); // Ordinamento versioni versions.Sort( delegate(DocsPaVO.documento.FileRequest x, DocsPaVO.documento.FileRequest y) { int versionX, versionY; Int32.TryParse(x.version, out versionX); Int32.TryParse(y.version, out versionY); return(versionX.CompareTo(versionY)); } ); } if (!documentManager.CreateDocumentoGrigio(schedaDoc, objRuolo, out ruoliSuperiori)) { throw new ApplicationException("Errore nella creazione del documento grigio"); } else { // Notifica evento documento creato DocsPaDocumentale.Interfaces.IAclEventListener eventsNotification = new DocsPaDocumentale.Documentale.AclEventListener(objSicurezza); eventsNotification.DocumentoCreatoEventHandler(schedaDoc, objRuolo, ruoliSuperiori); // Sincronizzazione repository if (schedaDoc.repositoryContext != null) { SessionRepositoryFileManager fileManager = SessionRepositoryFileManager.GetFileManager(schedaDoc.repositoryContext); // In fase di inserimento di un repository temporaneo, // possono essere creati: // - la prima versione del documento e, qualora sia stato acquisito un file // e firmato, anche la seconda versione firmata del documento // - la prima versione di n allegati // La prima versione del documento è creata automaticamente con la creazione del documento stesso. // In caso di seconda versione firmata del documento, è necessario procedre alla creazione. foreach (DocsPaVO.documento.FileRequest v in versions) { int version; Int32.TryParse(v.version, out version); DocsPaVO.documento.FileRequest savedVersion = null; if (version > 1) { // Seconda versione firmata del documento, // impostazione dell'id del documento di appartenenza v.docNumber = schedaDoc.docNumber; // Inserimento delle versioni del documento, // acquisite oltre alla versione principale if (!documentManager.AddVersion(v, false)) { throw new ApplicationException(string.Format("Errore nella creazione della versione {0} del documento con id {1}", version, schedaDoc.systemId)); } savedVersion = SessionRepositorySyncronizer.CopyToRepository(fileManager, v); // Inserimento della nuova versione come primo elemento della lista documenti schedaDoc.documenti.Insert(0, savedVersion); } else { // La versione principale del documento è già stata creata al momento dell'inserimento, // pertanto è necessario copiare solamente il file acquisito nel repository savedVersion = SessionRepositorySyncronizer.CopyToRepository(fileManager, (DocsPaVO.documento.FileRequest)schedaDoc.documenti[0]); // Aggiornamento istanza documento principale schedaDoc.documenti[0] = savedVersion; } } if (schedaDoc.allegati != null && schedaDoc.allegati.Count > 0) { // Gli allegati e le rispettive versioni andranno create manualmente foreach (DocsPaVO.documento.Allegato allegato in schedaDoc.allegati) { string oldVersionLabel = allegato.versionLabel; // Impostazione del docnumber del documento principale // cui sarà associato l'allegato allegato.docNumber = schedaDoc.docNumber; if (!documentManager.AddAttachment(allegato, "N")) { throw new ApplicationException(string.Format("Errore nella creazione dell'allegato {0} del documento con id {1}", allegato.position, schedaDoc.systemId)); } allegato.versionLabel = oldVersionLabel; } DocsPaVO.documento.FileRequest[] allegati = (DocsPaVO.documento.FileRequest[])schedaDoc.allegati.ToArray(typeof(DocsPaVO.documento.Allegato)); if (allegati.Length > 0) { schedaDoc.allegati = new ArrayList(SessionRepositorySyncronizer.CopyToRepository(fileManager, allegati)); } } // Se è presente un repository temporaneo, viene effettuato l'inserimento del file nel repository del documentale // Imposta il repository come scaduto fileManager.Delete(); schedaDoc.repositoryContext = null; } } //Richiamo il metodo per il calcolo della atipicità del documento DocsPaDB.Query_DocsPAWS.Documentale documentale = new DocsPaDB.Query_DocsPAWS.Documentale(); schedaDoc.InfoAtipicita = documentale.CalcolaAtipicita(objSicurezza, schedaDoc.docNumber, DocsPaVO.Security.InfoAtipicita.TipoOggettoAtipico.DOCUMENTO); if (schedaDoc != null) { // Impostazione della transazione come completata, // solamente se il documento è stato creato correttamente transactionContext.Complete(); } } logger.Info("END"); return(schedaDoc); } catch (Exception ex) { throw ex; } finally { semProtNuovo.ReleaseMutex(); } }
/// <summary> /// Inserimento di un nuovo allegato per un documento /// </summary> /// <param name="infoUtente"></param> /// <param name="allegato"></param> /// <param name="debug"></param> /// <returns></returns> private static DocsPaVO.documento.Allegato aggiungiAllegato(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.Allegato allegato, bool statoCongelato) { using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { if (allegato.repositoryContext != null) { // Inserimento di un allegato nel repositorycontext allegato.version = "1"; // Prima versione dell'allegato allegato.versionId = allegato.position.ToString(); // Viene assegnato un nuovo id temporaneo (la sequenza di inserimento) allegato.versionLabel = DocsPaDB.Query_DocsPAWS.Documenti.FormatCodiceAllegato(allegato.position); // Viene creato, in base alla sequenza di inserimento, il codice progressivo // L'allegato viene impostato come non acquisito allegato.subVersion = "!"; allegato.fileName = string.Empty; allegato.fileSize = "0"; } else { if (statoCongelato && allegato.TypeAttachment != 2 && allegato.TypeAttachment != 3) { // Controllo su stato congelato, solo se non si sta creando l'allegato nel repository context DocumentConsolidation.CanExecuteAction(infoUtente, allegato.docNumber, DocumentConsolidation.ConsolidationActionsDeniedEnum.AddAttatchments, true); } DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti(); string oldApp = null; string putfile = ""; try { if (allegato.applicazione != null) { if (allegato.applicazione.systemId == null) { allegato.applicazione = BusinessLogic.Documenti.FileManager.getApplicazione(allegato.applicazione.estensione); } logger.Debug("Update della tabella profile"); string param = "DOCNUMBER=" + allegato.docNumber; doc.GetApplication(out oldApp, allegato.docNumber, allegato.applicazione.systemId, param); } if (!string.IsNullOrEmpty(allegato.versionLabel)) { // L'allegato è già stato creato (ha già la versionLabel), // si sta usando il metodo per fare un'acquisizione sull'allegato putfile = "Y"; } DocsPaDocumentale.Documentale.DocumentManager documentManager = new DocsPaDocumentale.Documentale.DocumentManager(infoUtente); //Se l'allegato non è una ricevuta controllo se il doc principale è in libro firma; se il doc principale è in libro firma non è possibile allegare if (allegato.TypeAttachment != 2 && allegato.TypeAttachment != 3 && LibroFirmaManager.IsModificaBloccataPerDocumentoPrincipaleInLF(allegato.docNumber, infoUtente.idAmministrazione)) { throw new Exception("Non è possibile creare l'allegato poichè il documento principale è in libro firma"); } if (!documentManager.AddAttachment(allegato, putfile)) { throw new Exception("Errore nell'inserimento dell'allegato nel documentale"); } else { transactionContext.Complete(); } } catch (Exception e) { string message = string.Format("Errore nell'inserimento dell'allegato: {0}", e.Message); logger.Debug(message); throw new Exception(message); } } } return(allegato); }