/// <summary> /// Creazione di un nuovo folder in un fascicolo in docspa e documentum /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result) { Ruolo[] ruoliSuperiori; return(this.CreateFolder(folder, ruolo, out result, out ruoliSuperiori)); }
/// <summary> /// Creazione nuovo sottofascicolo /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"> /// Ruoli superiori cui è impostata la visibilità del sottofascicolo /// </param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { bool retValue = false; ruoliSuperiori = null; result = ResultCreazioneFolder.GENERIC_ERROR; // Verifica l'univocità del folder: in documentum // non possono essere inseriti sottofascicoli // dello stesso livello aventi lo stesso nome if (!this.ExistFolderName(folder)) { retValue = this.ProjectManagerETDOCS.CreateFolder(folder, ruolo, out result, out ruoliSuperiori); if (retValue) { retValue = this.ProjectManagerDocumentum.CreateFolder(folder, ruolo, out result); } } else { result = ResultCreazioneFolder.FOLDER_EXIST; } return(retValue); }
/// <summary> /// /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"></param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { bool retValue = false; result = ResultCreazioneFolder.GENERIC_ERROR; ruoliSuperiori = null; try { string idPeopleDelegato = string.Empty; if (this.UserInfo.delegato != null && this.UserInfo.delegato.idPeople != null) { idPeopleDelegato = this.UserInfo.delegato.idPeople; } folder.systemID = this.CreateProject(folder.descrizione, idPeopleDelegato); if (folder.systemID == null) { throw new Exception(); } DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); fascicoli.NewFolder(this.UserInfo.idAmministrazione, folder); fascicoli.Dispose(); //Set project trustees fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); if (ruolo != null) { bool isFolder = (folder.idParent != folder.idFascicolo); // sottofascicoli: si da la visibilità ad essi a tutti coloro che vedono il fascicolo a cui essi appartengono // caso di rootFolder, segue la visibilità del fascicolo a cui fa riferimento (calcolata in fase di creazione del fascicolo) System.Collections.ArrayList listRuoliSuperiori; fascicoli.SetProjectTrustees(this.UserInfo.idPeople, folder.systemID, ruolo, folder.idFascicolo, isFolder, out listRuoliSuperiori, this.UserInfo.delegato); ruoliSuperiori = (Ruolo[])listRuoliSuperiori.ToArray(typeof(Ruolo)); } fascicoli.Dispose(); retValue = true; result = ResultCreazioneFolder.OK; } catch (Exception e) { logger.Debug("Errore durante la creazione di un folder.", e); retValue = false; result = ResultCreazioneFolder.GENERIC_ERROR; } return(retValue); }
/// <summary> /// /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result) { bool retValue = true; //... non fa nulla result = ResultCreazioneFolder.OK; return(retValue); }
/// <summary> /// Creazione nuovo sottofascicolo /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"> /// Ruoli superiori cui è impostata la visibilità del sottofascicolo /// </param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { result = ResultCreazioneFolder.OK; ruoliSuperiori = null; return(true); }
/// <summary> /// Creazione nuovo sottofascicolo /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"> /// Ruoli superiori cui è impostata la visibilità del sottofascicolo /// </param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { bool retValue = false; result = ResultCreazioneFolder.GENERIC_ERROR; ruoliSuperiori = null; try { // Recuperare l'ID del padre del folder: dato che la modalità è diversa se il padre // è Fascicolo o Sottofascicolo, è necessario verificare la casistica // Caso in cui il parent del sottofascicolo è un sottofascicolo stesso Qualification qualSottoFascicoloParent = Dfs4DocsPa.getSottofascicoloQualificationById(folder.idParent); string parentId = DfsHelper.getDctmObjectId(this.GetServiceInstance <IQueryService>(false), qualSottoFascicoloParent); if (string.IsNullOrEmpty(parentId)) { // Caso in cui il parent del sottofascicolo è un fascicolo stesso qualSottoFascicoloParent = Dfs4DocsPa.getFascicoloQualificationById(folder.idFascicolo); parentId = DfsHelper.getDctmObjectId(this.GetServiceInstance <IQueryService>(false), qualSottoFascicoloParent); } if (!string.IsNullOrEmpty(parentId)) { ObjectIdentity parentIdentity = new ObjectIdentity(new ObjectId(parentId), DctmConfigurations.GetRepositoryName()); ObjectIdentity identity = new ObjectIdentity(DctmConfigurations.GetRepositoryName()); DataObject dataObject = new DataObject(identity, ObjectTypes.SOTTOFASCICOLO); dataObject.Properties.Properties.AddRange(Dfs4DocsPa.getSottoFascicoloProperties(folder)); dataObject.Relationships.Add(DfsHelper.createParentFolderRelationship(parentIdentity)); // Reperimento ACL del fascicolo di appartenenza e associazione al sottofascicolo CustomServices.AclDefinition aclDefinition = this.GetAclDefinitionSottoFascicolo(folder); AclHelper.setAclObjectProperties(dataObject.Properties, aclDefinition); DataPackage dataPackage = new DataPackage(dataObject); dataPackage = this.GetServiceInstance <IObjectService>(false).Create(dataPackage, null); retValue = (dataPackage.DataObjects.Count == 1); if (retValue) { result = ResultCreazioneFolder.OK; logger.Debug(string.Format("Documentum.CreateFolder: creato sottofascicolo con id {0}", folder.systemID)); } } else { throw new ApplicationException(string.Format("Non è stato possibile reperire l'oggetto parent per il folder con id '{0}'", folder.systemID)); } } catch (Exception ex) { retValue = false; logger.Debug(string.Format("Errore in Documentum.CreateFolder:\n{0}", ex.ToString())); } return(retValue); }
/// <summary> /// /// </summary> /// <param name="folder"></param> /// <param name="ruolo"></param> /// <param name="result"></param> /// <param name="ruoliSuperiori"></param> /// <returns></returns> public bool CreateFolder(DocsPaVO.fascicolazione.Folder folder, DocsPaVO.utente.Ruolo ruolo, out DocsPaVO.fascicolazione.ResultCreazioneFolder result, out DocsPaVO.utente.Ruolo[] ruoliSuperiori) { bool retValue = false; result = ResultCreazioneFolder.GENERIC_ERROR; ruoliSuperiori = null; try { string idPeopleDelegato = string.Empty; if (this.UserInfo.delegato != null && this.UserInfo.delegato.idPeople != null) { idPeopleDelegato = this.UserInfo.delegato.idPeople; } folder.systemID = this.CreateProject(folder.descrizione, idPeopleDelegato); if (folder.systemID == null) { throw new Exception(); } DocsPaDB.Query_DocsPAWS.Fascicoli fascicoli = new DocsPaDB.Query_DocsPAWS.Fascicoli(); fascicoli.NewFolder(this.UserInfo.idAmministrazione, folder); //Set project trustees bool isFolder = (folder.idParent != folder.idFascicolo); if (ruolo != null) { // sottofascicoli: si da la visibilità ad essi a tutti coloro che vedono il fascicolo a cui essi appartengono // caso di rootFolder, segue la visibilità del fascicolo a cui fa riferimento (calcolata in fase di creazione del fascicolo) System.Collections.ArrayList listRuoliSuperiori; fascicoli.SetProjectTrustees(this.UserInfo.idPeople, folder.systemID, ruolo, folder.idFascicolo, isFolder, out listRuoliSuperiori, this.UserInfo.delegato); ruoliSuperiori = (Ruolo[])listRuoliSuperiori.ToArray(typeof(Ruolo)); } string valorechiave = DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "BE_PROJECT_LEVEL"); if (!string.IsNullOrEmpty(valorechiave) && valorechiave.Equals("1") && isFolder) { fascicoli.UpdateFolderLevels(UserInfo.idPeople, UserInfo.idGruppo, UserInfo.idAmministrazione, folder); } retValue = true; result = ResultCreazioneFolder.OK; } catch (Exception ex) { logger.Error(ex); retValue = false; result = ResultCreazioneFolder.GENERIC_ERROR; } return(retValue); }