Example #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);
                }
            }
        }
Example #2
0
        /// <summary>
        /// Inserimento nuovo ruolo in amministrazione
        /// </summary>
        /// <param name="ruolo"></param>
        /// <returns></returns>
        public EsitoOperazione InserisciRuolo(OrgRuolo ruolo, bool computeAtipicita)
        {
            EsitoOperazione ret = new EsitoOperazione();
            string          logMsg;

            // test sui campi obbligatori
            if (string.IsNullOrEmpty(ruolo.Codice) ||
                string.IsNullOrEmpty(ruolo.Descrizione))
            {
                ret.Codice      = -1;
                logMsg          = ERR_HEADER + "InserisciRuolo: dati insufficienti";
                ret.Descrizione = logMsg;
                logger.Debug(logMsg);
                return(ret);
            }

            // il campo Codice corrisponde a:
            //  (ETDOCS) DPA_CORR_GLOBALI.VAR_COD_RUBRICA varchar(128)
            //  (OCS)

            try
            {
                CorteContentServices.GroupRequestType groupReq = new CorteContentServices.GroupRequestType();
                groupReq.userCredentials   = OCSUtils.getApplicationUserCredentials();
                groupReq.group             = new CorteContentServices.GroupType();
                groupReq.group.name        = ruolo.Codice;
                groupReq.group.users       = new CorteContentServices.UserType[0];
                groupReq.group.description = ruolo.Descrizione;

                CorteContentServices.ResultType result = this.WsGroupInstance.CreateGroup(groupReq);

                if (OCSUtils.isValidServiceResult(result))
                {
                    ret.Codice = 0;
                }
                else
                {
                    ret.Codice      = -1;
                    ret.Descrizione = result.message;
                }

                return(ret);
            }
            catch (Exception ex)
            {
                String st = ex.ToString();
                logger.Debug(DEBUG_HEADER + "InserisciRuolo FALLITA, Exception=" + st);
                ret.Codice      = -1;
                ret.Descrizione = ERR_HEADER + "InserisciRuolo";
                return(ret);
            }
        }
Example #3
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;
        }
Example #4
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);
        }
Example #5
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);
        }