/// <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); } } }
/// <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); } }
/// <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; }
/// <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); }
/// <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); }