Esempio n. 1
0
        /// <summary>
        /// Handler dell'evento di avvenuta trasmissione di un documento / fascicolo
        /// </summary>
        /// <param name="trasmissione"></param>
        /// <param name="infoSecurity">
        /// Oggetto contenente i metadati relativi alla tipologia di ACL
        /// impostata nella trasmissione di un documento / fascicolo
        /// </param>
        public void TrasmissioneCompletataEventHandler(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.infoSecurity[] infoSecurityList)
        {
            // In caso di trasmissione con cessione diritti attivata, cambia il proprietario del documento
            // in OCS proprietario e non, hanno il solo diritto di lettura, quindi basta aggiornare l'acl

            //TODO:
            if (trasmissione.tipoOggetto == DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO)
            {
                // Reperimento ACL per il documento smistato

                bool retValue = false;

                try
                {
                    //bisogna reperire l'id OCS
                    UserCredentialsType credentials = OCSUtils.getApplicationUserCredentials();

                    long idOCS = OCSDocumentHelper.getDocumentIdOCS(trasmissione.infoDocumento.docNumber, null, credentials);

                    //reperisco la acl del documento docspa e aggiorno quelle di OCS
                    retValue = OCSDocumentHelper.setAclDocument(trasmissione.infoDocumento.idProfile, idOCS, this.InfoUtente, credentials);
                }
                catch (Exception ex)
                {
                    retValue = false;

                    logger.Error("Errore in OCS.TrasmissioneCompletataEventHandler", ex);
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Reperimento del token di autenticazione per il superuser del documentale
        /// </summary>
        /// <returns></returns>
        public string GetSuperUserAuthenticationToken()
        {
            UserCredentialsType credentials = OCSServices.OCSUtils.getApplicationUserCredentials();

            // Creazione token di autenticazione
            return(this.GetAuthenticationToken(credentials.userId, credentials.password));
        }
Esempio n. 3
0
        /// <summary>
        /// Reperimento credenziali OCS da superutente
        /// </summary>
        /// <returns></returns>
        public static UserCredentialsType getApplicationUserCredentials()
        {
            UserCredentialsType userCred = new UserCredentialsType();

            userCred.userId   = OCSConfigurations.GetSuperUser();
            userCred.password = OCSConfigurations.GetSuperUserPwd();
            return(userCred);
        }
Esempio n. 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="docNumber"></param>
        /// <param name="versionId"></param>
        /// <param name="ocsCredentials">Credenziali per effettuare l'operazione in ocs</param>
        /// <returns></returns>
        public static long getAttachIdOCS(string docNumber, string versionId, UserCredentialsType ocsCredentials)
        {
            long idOCS = -1;

            //Reperimento idOCS in base al path e al nome del documento
            string pathDoc = DocsPaServices.DocsPaQueryHelper.getDocumentPath(docNumber);
            string nameDoc = DocsPaServices.DocsPaQueryHelper.getDocumentName(docNumber, versionId);

            if (pathDoc != null)
            {
                idOCS = getIdOCSByPath(pathDoc, nameDoc, ocsCredentials);
            }

            return(idOCS);
        }
Esempio n. 5
0
        /// <summary>
        /// Reperimento credenziali OCS per l'utente richiesto
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <returns></returns>
        public static UserCredentialsType getUserCredentials(InfoUtente infoUtente)
        {
            CorteContentServices.UserCredentialsType userCred = new UserCredentialsType();
            string decryptedToken = OCSServices.OCSTokenHelper.Decrypt(infoUtente.dst);

            // Creazione oggetto RepositoryIdentity
            if (!string.IsNullOrEmpty(decryptedToken))
            {
                string[] items = decryptedToken.Split('|');

                if (items.Length == 2)
                {
                    userCred.userId   = items[0];
                    userCred.password = items[1];
                }
            }
            return(userCred);
        }
Esempio n. 6
0
        /// <summary>
        /// Accesso ad OCS usando il metodo GetDocumentByName
        /// </summary>
        /// <param name="path"></param>
        /// <param name="name"></param>
        /// <param name="ocsCredentials">Credenziali per effettuare l'operazione in ocs</param>
        /// <returns></returns>
        private static long getIdOCSByPath(string path, string name, UserCredentialsType ocsCredentials)
        {
            CorteContentServices.DocumentNameSearchRequestType nameReq = new CorteContentServices.DocumentNameSearchRequestType();
            CorteContentServices.ItemIdResponseType            itemIdResp;

            nameReq.userCredentials        = ocsCredentials;
            nameReq.document               = new DocsPaDocumentale_OCS.CorteContentServices.DocumentNameSearchType();
            nameReq.document.info          = new DocsPaDocumentale_OCS.CorteContentServices.InfoType();
            nameReq.document.info.location = path;
            nameReq.document.info.name     = name;

            DocumentManagementSOAPHTTPBinding wsDocument = OCSServiceFactory.GetDocumentServiceInstance <DocumentManagementSOAPHTTPBinding>();

            itemIdResp = wsDocument.GetDocumentByName(nameReq);

            OCSUtils.throwExceptionIfInvalidResult(itemIdResp.result);

            return(itemIdResp.itemId);
        }
Esempio n. 7
0
        /// <summary>
        /// Handler dell'evento di avvenuto smistamento di un documento ad un ruolo
        /// </summary>
        /// <param name="mittente"></param>
        /// <param name="documento"></param>
        /// <param name="ruolo"></param>
        /// <param name="accessRights"></param>
        public void SmistamentoDocumentoCompletatoEventHandler(DocsPaVO.Smistamento.MittenteSmistamento mittente, DocsPaVO.Smistamento.DocumentoSmistamento documento, DocsPaVO.Smistamento.RuoloSmistamento ruolo, string accessRights)
        {
            // Reperimento ACL per il documento smistato
            bool retValue = false;

            try
            {
                //bisogna reperire l'id OCS
                UserCredentialsType credentials = OCSUtils.getApplicationUserCredentials();

                long idOCS = OCSDocumentHelper.getDocumentIdOCS(documento.DocNumber, null, credentials);

                //reperisco la acl del documento docspa e aggiorno quelle di OCS
                retValue = OCSDocumentHelper.setAclDocument(documento.IDDocumento, idOCS, this.InfoUtente, credentials);
            }
            catch (Exception ex)
            {
                retValue = false;

                logger.Debug("Errore in OCS.SmistamentoDocumentoCompletatoEventHandler", ex);
            }

            return;
        }
Esempio n. 8
0
        /// <summary>

        /// <summary>
        ///
        /// </summary>
        /// <param name="docNumber"></param>
        /// <param name="versionId"></param>
        /// <param name="path"></param>
        /// <param name="name"></param>
        /// <param name="ocsCredentials">Credenziali per effettuare l'operazione in ocs</param>
        /// <returns></returns>
        public static long getDocumentIdOCSByPath(string docNumber, string versionId, string path, string name, UserCredentialsType ocsCredentials)
        {
            long idOCS = -1;

            //Reperimento idOCS in base al path e al nome del documento
            string pathDoc = path;

            if (pathDoc == null || pathDoc.Equals(""))
            {
                pathDoc = DocsPaServices.DocsPaQueryHelper.getDocumentPath(docNumber);
            }

            string nameDoc = name;

            if (nameDoc == null || nameDoc.Equals(""))
            {
                nameDoc = DocsPaServices.DocsPaQueryHelper.getDocumentName(docNumber, versionId);
            }

            if (pathDoc != null)
            {
                idOCS = getIdOCSByPath(pathDoc, nameDoc, ocsCredentials);
            }

            return(idOCS);
        }
Esempio n. 9
0
        /// <summary>
        /// Ricerca dell'id in ocs del documento in docspa
        /// </summary>
        /// <param name="idDocsPa">
        /// Id del documento in docspa da cercare in ocs
        /// </param>
        /// <param name="documentCategoryName">
        /// Categoria di appartenenza del documento
        /// </param>
        /// <param name="categoryFieldName">
        /// Campo della categoria in base a cui cercare il documento
        /// </param>
        /// <param name="searchInCestino">
        /// Se true, indica di cercare il documento nel cestino
        /// </param>
        /// <param name="ocsCredentials"></param>
        /// <returns>
        /// Corrispondente id in ocs del documento
        /// </returns>
        public static long getIdDocument(string idDocsPa, string documentCategoryName, string categoryFieldName, bool searchInCestino, UserCredentialsType ocsCredentials)
        {
            long idOCS = -1;

            //Reperimento idOCS in base ad una ricerca
            CorteContentServices.FilterSearchRequestType searchDocumentRequest = new CorteContentServices.FilterSearchRequestType();

            searchDocumentRequest.userCredentials = ocsCredentials;
            searchDocumentRequest.filter          = new CorteContentServices.FilterSearchType();

            if (searchInCestino)
            {
                // Ricerca del documento nella cartella del cestino
                searchDocumentRequest.filter.folderPath = OCSConfigurations.GetPathCestino();
            }
            else
            {
                // Ricerca del documento a partire dalla root path della libreria ocs corrente
                searchDocumentRequest.filter.folderPath = OCSConfigurations.GetDocRootFolder();
            }

            searchDocumentRequest.filter.includeSubFolders          = true;
            searchDocumentRequest.filter.includeSubFoldersSpecified = true;
            searchDocumentRequest.filter.count           = 0;
            searchDocumentRequest.filter.countSpecified  = true;
            searchDocumentRequest.filter.offset          = 0;
            searchDocumentRequest.filter.offsetSpecified = true;
            searchDocumentRequest.filter.searchExpress   = new DocsPaDocumentale_OCS.CorteContentServices.searchExpress();
            searchDocumentRequest.filter.searchExpress.SearchExprType = new DocsPaDocumentale_OCS.CorteContentServices.SearchExprType();
            string leftOpCr1  = string.Format("[{0}:{1}]", documentCategoryName, categoryFieldName);
            string operatCr1  = "EQUAL";
            string rightOpCr1 = idDocsPa;

            searchDocumentRequest.filter.searchExpress.SearchExprType.leftOperand  = leftOpCr1;
            searchDocumentRequest.filter.searchExpress.SearchExprType.@operator    = operatCr1;
            searchDocumentRequest.filter.searchExpress.SearchExprType.rightOperand = rightOpCr1;

            searchDocumentRequest.filter.searchExpress.SearchExprType.sameLevelOperator = "AND";

            searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1 = new DocsPaDocumentale_OCS.CorteContentServices.SearchExprType();
            string operatCr2  = "HAS_CATEGORY";
            string rightOpCr2 = string.Format("[{0}]", documentCategoryName);

            searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.@operator    = operatCr2;
            searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.rightOperand = rightOpCr2;

            CorteContentServices.ItemSearchListResponseType listResult;

            DocumentManagementSOAPHTTPBinding wsDocument = OCSServiceFactory.GetDocumentServiceInstance <DocumentManagementSOAPHTTPBinding>();

            listResult = wsDocument.SearchDocuments(searchDocumentRequest);

            OCSUtils.throwExceptionIfInvalidResult(listResult.result);

            // Reperimento itemId
            if (listResult.items != null && listResult.items.Length == 1)
            {
                idOCS = listResult.items[0].itemId;
            }

            return(idOCS);
        }
Esempio n. 10
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="docNumber"></param>
        ///// <param name="folderPath"></param>
        ///// <param name="ocsCredentials">Credenziali per effettuare l'operazione in ocs</param>
        ///// <returns></returns>
        //public static long getGeneralDocumentIdOCSBySearch(string docNumber, string folderPath, UserCredentialsType ocsCredentials)
        //{
        //    long idOCS = -1;

        //    //Reperimento idOCS in base ad una ricerca
        //    CorteContentServices.FilterSearchRequestType searchDocumentRequest = new CorteContentServices.FilterSearchRequestType();

        //    searchDocumentRequest.userCredentials = ocsCredentials;
        //    searchDocumentRequest.filter = new CorteContentServices.FilterSearchType();
        //    if (folderPath != null)
        //        searchDocumentRequest.filter.folderPath = folderPath;
        //    searchDocumentRequest.filter.includeSubFolders = true;
        //    searchDocumentRequest.filter.includeSubFoldersSpecified = true;
        //    searchDocumentRequest.filter.count = 0;
        //    searchDocumentRequest.filter.countSpecified = true;
        //    searchDocumentRequest.filter.offset = 0;
        //    searchDocumentRequest.filter.offsetSpecified = true;
        //    searchDocumentRequest.filter.searchExpress = new DocsPaDocumentale_OCS.CorteContentServices.searchExpress(); //TODO: da fare!!!
        //    searchDocumentRequest.filter.searchExpress.SearchExprType = new DocsPaDocumentale_OCS.CorteContentServices.SearchExprType();
        //    string leftOpCr1 = "[" + DocsPaObjectType.ObjectTypes.CATEGOTY_PROTOCOLLO + ":" + DocsPaObjectType.TypeDocumentoProtocollo.DOC_NUMBER + "]";
        //    string operatCr1 = "EQUAL";
        //    string rightOpCr1 = docNumber;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.leftOperand = leftOpCr1;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.@operator = operatCr1;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.rightOperand = rightOpCr1;

        //    searchDocumentRequest.filter.searchExpress.SearchExprType.sameLevelOperator = "OR";

        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1 = new DocsPaDocumentale_OCS.CorteContentServices.SearchExprType();
        //    string leftOpCr2 = "[" + DocsPaObjectType.ObjectTypes.CATEGOTY_STAMPA_REGISTRO + ":" + DocsPaObjectType.TypeDocumentoStampaRegistro.DOC_NUMBER + "]";
        //    string operatCr2 = "EQUAL";
        //    string rightOpCr2 = docNumber;

        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.@operator = operatCr2;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.rightOperand = rightOpCr2;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.leftOperand = leftOpCr2;

        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.sameLevelOperator = "OR";

        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.SearchExprType1 = new DocsPaDocumentale_OCS.CorteContentServices.SearchExprType();
        //    string leftOpCr3 = "[" + DocsPaObjectType.ObjectTypes.CATEGOTY_ALLEGATO + ":" + DocsPaObjectType.TypeDocumentoAllegato.DOC_NUMBER + "]";
        //    string operatCr3 = "EQUAL";
        //    string rightOpCr3 = docNumber;

        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.SearchExprType1.@operator = operatCr3;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.SearchExprType1.rightOperand = rightOpCr3;
        //    searchDocumentRequest.filter.searchExpress.SearchExprType.SearchExprType1.SearchExprType1.leftOperand = leftOpCr3;

        //    CorteContentServices.ItemSearchListResponseType listResult;

        //    DocumentManagementSOAPHTTPBinding wsDocument = OCSServiceFactory.GetDocumentServiceInstance<DocumentManagementSOAPHTTPBinding>();
        //    listResult = wsDocument.SearchDocuments(searchDocumentRequest);

        //    OCSUtils.throwExceptionIfInvalidResult(listResult.result);

        //    // Reperimento itemId
        //    if (listResult.items != null && listResult.items.Length == 1)
        //        idOCS = listResult.items[0].itemId;

        //    return idOCS;
        //}

        /// <summary>
        /// Ricerca dell'id in ocs del documento in docspa
        /// </summary>
        /// <param name="idDocsPa"></param>
        /// <param name="documentCategoryName"></param>
        /// <param name="categoryFieldName"></param>
        /// <param name="ocsCredentials"></param>
        /// <returns></returns>
        public static long getIdDocument(string idDocsPa, string documentCategoryName, string categoryFieldName, UserCredentialsType ocsCredentials)
        {
            return(getIdDocument(idDocsPa, documentCategoryName, categoryFieldName, false, ocsCredentials));
        }
Esempio n. 11
0
        /// <summary>
        /// Rimozione delle ACL per un documento
        /// </summary>
        /// <param name="idDocsPa">ID del documento in docspa</param>
        /// <param name="idOcs">ID del documento in ocs</param>
        /// <param name="infoUtente">Credenziali docspa</param>
        /// <param name="ocsCredentials">Credenziali per effettuare l'operazione in ocs</param>
        /// <returns></returns>
        public static bool removeAclDocument(string idDocsPa, long idOcs, InfoUtente infoUtente, UserCredentialsType ocsCredentials)
        {
            CorteContentServices.GrantsType            grants;
            CorteContentServices.ItemGrantsRequestType itemGrantsRequest;
            CorteContentServices.ItemGrantsType        itemGrantsType;
            CorteContentServices.ResultType            resultGrants;

            grants = OCSServices.OCSUtils.getAclSecurity(idDocsPa);

            itemGrantsRequest = new CorteContentServices.ItemGrantsRequestType();
            itemGrantsRequest.userCredentials = ocsCredentials;
            itemGrantsType           = new CorteContentServices.ItemGrantsType();
            itemGrantsType.itemId    = idOcs;
            itemGrantsType.grants    = grants;
            itemGrantsRequest.grants = itemGrantsType;

            DocumentManagementSOAPHTTPBinding wsDocumentInstance = OCSServiceFactory.GetDocumentServiceInstance <DocumentManagementSOAPHTTPBinding>();

            resultGrants = wsDocumentInstance.RemoveDocumentGrants(itemGrantsRequest);

            OCSUtils.throwExceptionIfInvalidResult(resultGrants);

            return(true);
        }