Esempio n. 1
0
 /// <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));
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
 /// <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);
 }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
        /// <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);
        }