Beispiel #1
0
        /// <summary>
        /// Checkout di un documento
        /// </summary>
        /// <param name="checkOutStatus">Metadati relativi allo stato del documento in checkout</param>
        /// <param name="user"></param>
        /// <param name="library"></param>
        /// <returns></returns>
        public bool CheckOut(string idDocument, string documentNumber, string documentLocation, string machineName, out CheckOutStatus checkOutStatus)
        {
            checkOutStatus = null;

            bool retValue = false;

            try
            {
                //Il documento viene messo nello stato LOCK
                long idOCS = OCSDocumentHelper.getDocumentIdOCS(documentNumber, null, OCSUtils.getApplicationUserCredentials());
                CorteContentServices.ItemIdRequestType requestId = new DocsPaDocumentale_OCS.CorteContentServices.ItemIdRequestType();
                CorteContentServices.ResultType        result;
                requestId.userCredentials = OCSServices.OCSUtils.getApplicationUserCredentials();
                requestId.itemId          = idOCS; // id del documento
                result = this.WsDocumentInstance.LockDocument(requestId);

                OCSUtils.throwExceptionIfInvalidResult(result);

                retValue = true;
            }
            catch (Exception ex)
            {
                retValue = false;

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

            return(retValue);
        }
Beispiel #2
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);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// UndoCheckout di un documento in stato checkout
        /// </summary>
        /// <param name="checkOutStatus"></param>
        /// <param name="library"></param>
        /// <returns></returns>
        public bool UndoCheckOut(DocsPaVO.CheckInOut.CheckOutStatus checkOutStatus)
        {
            bool retValue = false;

            try
            {
                long idOCS = OCSDocumentHelper.getDocumentIdOCS(checkOutStatus.DocumentNumber, null, OCSUtils.getApplicationUserCredentials());

                CorteContentServices.ItemIdRequestType requestId = new DocsPaDocumentale_OCS.CorteContentServices.ItemIdRequestType();
                requestId.userCredentials = OCSServices.OCSUtils.getApplicationUserCredentials();
                requestId.itemId          = idOCS; // id del documento

                CorteContentServices.ResultType result = this.WsDocumentInstance.UnlockDocument(requestId);

                OCSUtils.throwExceptionIfInvalidResult(result);

                retValue = true;
            }
            catch (Exception ex)
            {
                retValue = false;

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

            return(retValue);
        }
Beispiel #4
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;
        }