/// <summary> /// Aggiornamento delle fascicolazioni /// </summary> /// <param name="idFolder"></param> public virtual bool UpdateFascicolazioni(string idFolder) { bool retValue = false; // Reperimento record di tipo "C" string idFolderC = DocsPaQueryHelper.getIdFolderCType(idFolder); try { IQueryService queryService = DctmServiceFactory.GetServiceInstance <IQueryService>(UserManager.ImpersonateSuperUser()); // 1. Reperimento di tutti i documenti contenuti in fascicolo in DCTM List <string> documentiInDctm = new List <string>(Dfs4DocsPa.getIdDocumentiInFascicolo(queryService, idFolder)); // 2. Reperimento di tutti i documenti contenuti in fascicolo in PITRE foreach (string idDocumento in DocsPaQueryHelper.getDocumentiInFolder(idFolderC)) { // 3. Per ogni documento contenuto nel fascicolo, verifica se esiste nel corrispondente fascicolo in DCTM if (!documentiInDctm.Contains(idDocumento)) { // 4. Verifica se il documento esiste in DCTM if (!Dfs4DocsPa.containsDocumento(idDocumento, queryService)) { throw new ApplicationException(string.Format("Documento con id '{0}' non esistente in Documentum", idDocumento)); } // 4. Inserimento del documento nel fascicolo in DCTM se non esiste if (!this.AddDocumentInFolder(idDocumento, idFolderC)) { throw new ApplicationException(string.Format("Errore in inserimento del documento con id '{0}' nel fascicolo con id '{1}'", idDocumento, idFolderC)); } } } retValue = true; } catch (Exception ex) { retValue = false; logger.Debug(string.Format("Errore in Documentum.UpdateFascicolazioni:\n{0}", ex.ToString())); } return(retValue); }