/// <summary> /// Annullamento del blocco del documento nel documentale /// </summary> /// <param name="adminInfoUtente"></param> /// <param name="checkOutAdminStatus"></param> /// <returns></returns> public bool ForceUndoCheckOut(CheckOutStatus checkOutAdminStatus) { bool retValue = false; if (this.CanForceUndoCheckOut()) { try { DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("CHECKINOUT_FORCE_UNDO_CHECKOUT_DOCUMENT"); queryDef.setParam("id", checkOutAdminStatus.ID.ToString()); string commandText = queryDef.getSQL(); logger.Debug(commandText); using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) retValue = dbProvider.ExecuteNonQuery(commandText); } catch (Exception ex) { logger.Debug(ex.Message, ex); throw new ApplicationException("Errore nell'UndoCheckOut del documento. IDDocumento: " + checkOutAdminStatus.IDDocument, ex); } } return(retValue); }
/// <summary> /// CheckIn di un documento /// </summary> /// <param name="checkOutInfo">Informazioni di stato sul documento in checkOut</param> /// <returns></returns> public bool CheckIn(CheckOutStatus checkOutStatus, byte[] content, string checkInComments) { bool retValue = false; try { DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("CHECKINOUT_CHECKIN_DOCUMENT"); queryDef.setParam("id", checkOutStatus.ID.ToString()); string commandText = queryDef.getSQL(); logger.Debug(commandText); using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) retValue = dbProvider.ExecuteNonQuery(commandText); if (retValue) { // Creazione della versione del documento retValue = this.CreateDocumentVersion(checkOutStatus, content, checkInComments, this.InfoUtente); } } catch (Exception ex) { logger.Debug(ex.Message, ex); throw new ApplicationException("Errore nel CheckIn del documento. IDDocumento: " + checkOutStatus.IDDocument, ex); } return(retValue); }
/// <summary> /// Reperimento delle informazioni di stato su un documento in stato checkedout /// </summary> /// <param name="dbProvider"></param> /// <param name="idDocument"></param> /// <param name="documentNumber"></param> /// <returns></returns> private CheckOutStatus GetCheckOutStatus(DocsPaDB.DBProvider dbProvider, string idDocument, string documentNumber) { CheckOutStatus status = null; try { DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("CHECKINOUT_GET_DOCUMENT_STATUS"); queryDef.setParam("idDocument", idDocument); string commandText = queryDef.getSQL(); logger.Debug(commandText); using (IDataReader reader = dbProvider.ExecuteReader(commandText)) { if (reader.Read()) { status = new CheckOutStatus(); this.FetchCheckOutInfo(reader, status); } } } catch (Exception ex) { logger.Debug(ex.Message, ex); throw new ApplicationException("Errore nel reperimento dello stato del documento in CheckOut. IDDocumento: " + idDocument, ex); } return(status); }
/// <summary> /// CheckIn di un documento /// </summary> /// <param name="content"></param> /// <returns></returns> public static ValidationResultInfo CheckInDocument(byte[] content) { ValidationResultInfo retValue = null; if (CheckOutContext.Current != null && CheckOutContext.Current.Status != null) { CheckOutStatus checkOutStatus = CheckOutContext.Current.Status; string checkInComments = CheckOutContext.Current.CheckInComments; retValue = _webServices.CheckInDocument(checkOutStatus, GetInfoUtente(), content, checkInComments); if (retValue.Value) { CheckOutContext.Current = null; if (System.Web.HttpContext.Current.Session["schedaAllegatoSelezionato"] != null) { System.Web.HttpContext.Current.Session["schedaAllegatoSelezionato"] = null; } } } else { retValue = new ValidationResultInfo(); } return(retValue); }
/// <summary> /// Creazione oggetto "CheckOutAdminStatus" da datareader /// </summary> /// <param name="reader"></param> /// <returns></returns> private CheckOutStatus GetCheckOutAdminStatus(IDataReader reader) { CheckOutStatus retValue = new CheckOutStatus(); retValue.ID = reader.GetValue(reader.GetOrdinal("ID_STATUS")).ToString(); retValue.IDDocument = reader.GetValue(reader.GetOrdinal("ID_DOCUMENT")).ToString(); retValue.DocumentNumber = reader.GetValue(reader.GetOrdinal("DOCUMENT_NUMBER")).ToString(); retValue.Segnature = reader.GetValue(reader.GetOrdinal("VAR_SEGNATURA")).ToString(); retValue.IDUser = reader.GetValue(reader.GetOrdinal("ID_USER")).ToString(); retValue.UserName = reader.GetValue(reader.GetOrdinal("USER_NAME")).ToString(); retValue.IDRole = reader.GetValue(reader.GetOrdinal("ID_ROLE")).ToString(); retValue.RoleName = reader.GetValue(reader.GetOrdinal("ROLE_NAME")).ToString(); retValue.CheckOutDate = reader.GetDateTime(reader.GetOrdinal("CHECK_OUT_DATE")); if (!reader.IsDBNull(reader.GetOrdinal("DOCUMENT_LOCATION"))) { retValue.DocumentLocation = reader.GetValue(reader.GetOrdinal("DOCUMENT_LOCATION")).ToString(); } if (!reader.IsDBNull(reader.GetOrdinal("MACHINE_NAME"))) { retValue.MachineName = reader.GetValue(reader.GetOrdinal("MACHINE_NAME")).ToString(); // Nome macchina non gestito dal documente Hummingbird } if (!reader.IsDBNull(reader.GetOrdinal("ID_DOCUMENTO_PRINCIPALE"))) { retValue.IsAllegato = !string.IsNullOrEmpty(reader.GetValue(reader.GetOrdinal("ID_DOCUMENTO_PRINCIPALE")).ToString()); } return(retValue); }
/// <summary> /// Reperiemento dell'oggetto FileRequest relativamente l'ultima versione del documento /// </summary> /// <param name="checkOutStatus"></param> /// <returns></returns> protected FileRequest GetFileRequest(CheckOutStatus checkOutStatus) { DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); // Reperimento dell'ultima versione del documento return(checkInOutDb.GetFileRequest(checkOutStatus.IDDocument)); }
/// <summary> /// Caricamento dati oggetto "CheckOutInfo" da datareader /// </summary> /// <param name="reader"></param> /// <param name="status"></param> /// <returns></returns> private void FetchCheckOutInfo(IDataReader reader, CheckOutStatus status) { status.ID = reader.GetValue(reader.GetOrdinal("SYSTEM_ID")).ToString(); status.IDDocument = reader.GetValue(reader.GetOrdinal("ID_DOCUMENT")).ToString(); status.DocumentNumber = reader.GetValue(reader.GetOrdinal("DOCUMENT_NUMBER")).ToString(); status.Segnature = reader.GetValue(reader.GetOrdinal("VAR_SEGNATURA")).ToString(); status.IDUser = reader.GetValue(reader.GetOrdinal("ID_USER")).ToString(); status.UserName = reader.GetValue(reader.GetOrdinal("USER_NAME")).ToString(); status.IDRole = reader.GetValue(reader.GetOrdinal("ID_ROLE")).ToString(); status.RoleName = reader.GetValue(reader.GetOrdinal("ROLE_NAME")).ToString(); status.CheckOutDate = reader.GetDateTime(reader.GetOrdinal("CHECK_OUT_DATE")); if (!reader.IsDBNull(reader.GetOrdinal("DOCUMENT_LOCATION"))) { status.DocumentLocation = reader.GetValue(reader.GetOrdinal("DOCUMENT_LOCATION")).ToString(); } if (!reader.IsDBNull(reader.GetOrdinal("MACHINE_NAME"))) { status.MachineName = reader.GetValue(reader.GetOrdinal("MACHINE_NAME")).ToString(); // Nome macchina non gestito dal documente Hummingbird } if (!reader.IsDBNull(reader.GetOrdinal("ID_DOCUMENTO_PRINCIPALE"))) { status.IsAllegato = !string.IsNullOrEmpty(reader.GetValue(reader.GetOrdinal("ID_DOCUMENTO_PRINCIPALE")).ToString()); } }
/// <summary> /// Creazione oggetto CheckOutStatus a partire dai dati contenuti in un DataObject /// </summary> /// <param name="dataObject"></param> /// <returns></returns> protected virtual CheckOutStatus CreateCheckOutStatus(DataObject dataObject) { CheckOutStatus retValue = new CheckOutStatus(); retValue.ID = ((ObjectId)dataObject.Identity.Value).Id; retValue.UserName = dataObject.Properties.Get("r_lock_owner").GetValueAsString(); retValue.DocumentNumber = dataObject.Properties.Get(TypeDocumento.DOC_NUMBER).GetValueAsString(); retValue.IDDocument = retValue.DocumentNumber; // Reperimento segnatura, solo se il documento è un protocollo string tipoProto = dataObject.Properties.Get(TypeDocumento.TIPO_PROTOCOLLO).GetValueAsString(); if (tipoProto.ToUpper() != "G") { retValue.Segnature = dataObject.Properties.Get("object_name").GetValueAsString(); } DateProperty checkOutDate = (DateProperty)dataObject.Properties.Get("r_lock_date"); retValue.CheckOutDate = checkOutDate.Value.Value; // Attributi custom che è stato necessario aggiungere in documentum retValue.DocumentLocation = dataObject.Properties.Get(TypeDocumento.CHECKOUT_LOCAL_FILE_PATH).GetValueAsString(); retValue.MachineName = dataObject.Properties.Get(TypeDocumento.CHECKOUT_MACHINE_NAME).GetValueAsString(); return(retValue); }
/// <summary> /// CheckIn di un documento /// </summary> /// <param name="content"></param> /// <returns></returns> public static ValidationResultInfo CheckInDocument(byte[] content) { ValidationResultInfo retValue = null; if (CheckOutContext.Current != null && CheckOutContext.Current.Status != null) { CheckOutStatus checkOutStatus = CheckOutContext.Current.Status; string checkInComments = CheckOutContext.Current.CheckInComments; retValue = _webServices.CheckInDocument(checkOutStatus, GetInfoUtente(), content, checkInComments); if (retValue.Value) { CheckOutContext.Current = null; SiteNavigation.CallContext context = SiteNavigation.CallContextStack.CurrentContext; if (context.ContextState["schedaAllegatoSelezionato"] != null) { context.ContextState.Remove("schedaAllegatoSelezionato"); } } } else { retValue = new ValidationResultInfo(); } return(retValue); }
/// <summary> /// Reperimento dei metadati sullo stato del checkout del documento /// </summary> /// <param name="idDocument"></param> /// <param name="documentNumber"></param> /// <returns></returns> public CheckOutStatus GetCheckOutStatus(string idDocument, string documentNumber) { CheckOutStatus retValue = null; //TODO: return(retValue); }
/// <summary> /// Reperimento delle informazioni di stato su un documento in stato checkedout /// </summary> /// <param name="idDocument"></param> /// <returns></returns> public CheckOutStatus GetCheckOutStatus(string idDocument, string documentNumber) { CheckOutStatus status = null; using (DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider()) status = this.GetCheckOutStatus(dbProvider, idDocument, documentNumber); return(status); }
/// <summary> /// Creazione dei metadati di una nuova versione di un documento in etdocs /// </summary> /// <param name="fileRequest"> /// Rappresenta i metadati relativi all'ultima versione del documento /// </param> /// <param name="fileContent"> /// Rappresenta il contenuto inviato per il checkin /// </param> /// <param name="fileExtension"> /// Estensione del file /// </param> /// <returns></returns> /// <summary> /// Creazione dei metadati di una nuova versione di un documento in etdocs /// </summary> /// <param name="fileRequest"> /// Rappresenta i metadati relativi all'ultima versione del documento /// </param> /// <param name="fileContent"> /// Rappresenta il contenuto inviato per il checkin /// </param> /// <param name="fileExtension"> /// Estensione del file /// </param> /// <returns></returns> protected virtual bool AddCheckInVersion(InfoUtente infoUtente, CheckOutStatus checkOutStatus, string checkInComments, FileRequest fileRequest, byte[] fileContent) { bool retValue = false; DocsPaDocumentale_ETDOCS.Documentale.DocumentManager documentManager = new DocsPaDocumentale_ETDOCS.Documentale.DocumentManager(infoUtente); DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); if (checkInOutDb.IsAcquired(fileRequest)) { // Se l'ultima versione del documento risulta acquisita già, // viene creata una nuova versione // Se per l'ultima versione del documento è stato acquisito un file, // viene creata nuova versione per il documento fileRequest = new FileRequest(); fileRequest.docNumber = checkOutStatus.DocumentNumber; fileRequest.descrizione = checkInComments; } else { // Se l'ultima versione del documento non risulta ancora acquisita, // il file viene inserito in quest'ultima // Se per l'ultima versione del documento non è stato acquisito un file, il file viene acquisito per l'ultima versione fileRequest.descrizione = checkInComments; retValue = true; } if (fileContent.Length > 0) { // Il file risulta acquisito // Inserimento nuova versione in etdocs con flag "cha_da_inviare = 0" retValue = documentManager.AddVersion(fileRequest, false); string fileExtension = System.IO.Path.GetExtension(checkOutStatus.DocumentLocation).Replace(".", string.Empty); fileRequest.fileName = string.Format("{0}.{1}", fileRequest.versionId, fileExtension); fileRequest.fileSize = fileContent.Length.ToString(); fileRequest.subVersion = "A"; // Impostazione del file come inserito in etdocs String nomeOriginale = System.IO.Path.GetFileName(checkOutStatus.DocumentLocation); this.SetFileAsInserted(fileRequest, fileContent, nomeOriginale); } else { // Il file non risulta acquisito // Inserimento nuova versione in etdocs con flag "cha_da_inviare = 1" // in quanto nessun content è stato inviato per la versione retValue = documentManager.AddVersion(fileRequest, true); } return(retValue); }
/// <summary> /// Caricamento dati relativamente allo stato del documento bloccato /// </summary> private void Fetch() { CheckOutStatus status = CheckInOutServices.GetCheckOutDocumentStatus(); if (status != null) { this.DrawTable(status); } }
/// <summary> /// Creazione di una nuova versione del documento /// </summary> /// <param name="idDocument"></param> /// <param name="checkOutStatus"></param> /// <param name="checkedOutFile"></param> /// <param name="checkInComments"></param> /// <returns></returns> protected bool CreateDocumentVersion(CheckOutStatus checkOutStatus, string checkInComments, byte[] content, bool fileIsAcquired, ref FileRequest fileRequest) { bool retValue = false; DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); retValue = this.AddCheckInVersion(this.InfoUtente, checkOutStatus, checkInComments, ref fileRequest, content, fileIsAcquired); return(retValue); }
/// <summary> /// Creazione di una nuova versione del documento /// </summary> /// <param name="idDocument"></param> /// <param name="checkOutStatus"></param> /// <param name="checkedOutFile"></param> /// <param name="checkInComments"></param> /// <returns></returns> protected bool CreateDocumentVersion(CheckOutStatus checkOutStatus, string checkInComments, byte[] content) { bool retValue = false; // Reperimento dell'ultima versione del documento FileRequest fileRequest = this.GetFileRequest(checkOutStatus); retValue = this.AddCheckInVersion(this.InfoUtente, checkOutStatus, checkInComments, fileRequest, content); return(retValue); }
/// <summary> /// CheckIn di un documento /// </summary> /// <param name="checkOutInfo">Informazioni di stato sul documento in checkOut</param> /// <returns></returns> public bool CheckIn(CheckOutStatus checkOutStatus, byte[] content, string checkInComments) { bool retValue = LockDocumentManager.ManualUnlock(checkOutStatus.DocumentNumber); if (retValue) { // Creazione della versione del documento retValue = this.CreateDocumentVersion(checkOutStatus, content, checkInComments, this.InfoUtente); } return(retValue); }
/// <summary> /// Annullamento del blocco del documento nel documentale /// </summary> /// <param name="adminInfoUtente"></param> /// <param name="checkOutAdminStatus"></param> /// <returns></returns> public bool ForceUndoCheckOut(CheckOutStatus checkOutAdminStatus) { if (this.CanForceUndoCheckOut()) { string library = this.GetLibrary(this.InfoUtente.idAmministrazione); return(LockDocumentManager.UnLock(checkOutAdminStatus.DocumentNumber, this.InfoUtente.dst, library)); } else { return(false); } }
/// <summary> /// Reperimento dei metadati sullo stato del checkout del documento /// </summary> /// <param name="idDocument"></param> /// <param name="documentNumber"></param> /// <returns></returns> public CheckOutStatus GetCheckOutStatus(string idDocument, string documentNumber) { CheckOutStatus retValue = null; CheckoutInfo dctmCheckOutInfo = this.GetDctmCheckOutInfo(documentNumber); if (dctmCheckOutInfo.IsCheckedOut) { string dctmId = ((ObjectId)dctmCheckOutInfo.Identity.Value).Id; retValue = this.GetCheckOutStatus(dctmId, idDocument, documentNumber); } return(retValue); }
/// <summary> /// Creazione oggetto "CheckOutAdminStatus" da datareader /// </summary> /// <param name="reader"></param> /// <returns></returns> private CheckOutStatus GetCheckOutAdminStatus(IDataReader reader) { CheckOutStatus retValue = new CheckOutStatus(); retValue.ID = reader.GetValue(reader.GetOrdinal("ID_STATUS")).ToString(); retValue.IDDocument = reader.GetValue(reader.GetOrdinal("ID_DOCUMENT")).ToString(); retValue.DocumentNumber = reader.GetValue(reader.GetOrdinal("DOCUMENT_NUMBER")).ToString(); retValue.Segnature = reader.GetValue(reader.GetOrdinal("VAR_SEGNATURA")).ToString(); retValue.UserName = reader.GetValue(reader.GetOrdinal("USER_ID")).ToString(); retValue.CheckOutDate = reader.GetDateTime(reader.GetOrdinal("CHECK_OUT_DATE")); retValue.DocumentLocation = reader.GetValue(reader.GetOrdinal("DOCUMENT_LOCATION")).ToString(); retValue.MachineName = string.Empty; // Nome macchina non gestito dal documentale hummingbird return(retValue); }
/// <summary> /// Creazione di una nuova versione del documento /// </summary> /// <param name="idDocument"></param> /// <param name="checkOutStatus"></param> /// <param name="checkedOutFile"></param> /// <param name="checkInComments"></param> /// <returns></returns> protected bool CreateDocumentVersion(CheckOutStatus checkOutStatus, byte[] checkedOutFileContent, string checkInComments, InfoUtente checkOutOwner) { bool retValue = false; DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); // Reperimento dell'ultima versione del documento FileRequest fileRequest = checkInOutDb.GetFileRequest(checkOutStatus.IDDocument); FileDocumento fileDocument = CreateFileDocument(checkOutStatus.DocumentLocation, checkedOutFileContent); if (checkInOutDb.IsAcquired(fileRequest)) { // Se per l'ultima versione del documento è stato acquisito un file, // viene creata nuova versione per il documento fileRequest = new FileRequest(); fileRequest.fileName = checkOutStatus.DocumentLocation; fileRequest.docNumber = checkOutStatus.DocumentNumber; // Impostazione degli eventuali commenti da aggiungere alla versione fileRequest.descrizione = checkInComments; DocumentManager documentManager = new DocumentManager(this.InfoUtente); retValue = documentManager.AddVersion(fileRequest, false); } else { // Se per l'ultima versione del documento non è stato acquisito un file, // il file viene acquisito per l'ultima versione fileRequest.fileName = fileDocument.fullName; // Impostazione degli eventuali commenti da aggiungere alla versione fileRequest.descrizione = checkInComments; retValue = true; } if (retValue && fileDocument != null && fileDocument.content != null && fileDocument.content.Length > 0) { // Inserimento del nuovo file per la versione DocumentManager documentManager = new DocumentManager(this.InfoUtente); retValue = documentManager.PutFile(fileRequest, fileDocument, fileDocument.estensioneFile); } return(retValue); }
/// <summary> /// /// </summary> /// <param name="idStatus"></param> /// <returns></returns> private CheckOutStatus GetCheckOutStatus(string idStatus) { CheckOutStatus status = null; // Reperimento status documento foreach (CheckOutStatus item in this.CheckOutStatusLocalList) { if (item.ID.Equals(idStatus)) { status = item; break; } } return(status); }
/// <summary> /// /// </summary> /// <param name="checkOutAdminStatus"></param> /// <returns></returns> public bool ForceUndoCheckOut(CheckOutStatus checkOutAdminStatus) { bool retValue = false; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { retValue = this.CheckInOutAdminManagerETDOCS.ForceUndoCheckOut(checkOutAdminStatus); if (retValue) { this.CheckInOutAdminManagerOCS.ForceUndoCheckOut(checkOutAdminStatus); } if (retValue) { transactionContext.Complete(); } } return(retValue); }
/// <summary> /// CheckIn di un documento /// </summary> /// <param name="content"></param> /// <returns></returns> public static ValidationResultInfo CheckInDocument(byte[] content) { ValidationResultInfo retValue = null; CheckOutStatus ckSt = null; string checkInComments = string.Empty; if (IsSelectedTabAllegati()) { if (UIManager.DocumentManager.GetSelectedAttachment() != null) { ckSt = UIManager.DocumentManager.GetCheckOutDocumentStatus(UIManager.DocumentManager.GetSelectedAttachment().docNumber); } } else { if (CheckOutAppletContext.Current != null) { ckSt = CheckOutAppletContext.Current.Status; checkInComments = CheckOutAppletContext.Current.CheckInComments; } } if (ckSt != null) { retValue = _webServices.CheckInDocument(ckSt, GetInfoUtente(), content, checkInComments); if (retValue.Value) { CheckOutAppletContext.Current = null; if (System.Web.HttpContext.Current.Session["schedaAllegatoSelezionato"] != null) { System.Web.HttpContext.Current.Session["schedaAllegatoSelezionato"] = null; } } } else { retValue = new ValidationResultInfo(); } return(retValue); }
/// <summary> /// /// </summary> /// <param name="idStatus"></param> private bool UndoCheckOut(string idStatus) { bool retValue = false; // Reperimento status documento CheckOutStatus status = this.GetCheckOutStatus(idStatus); DocsPAWA.AdminTool.Manager.SessionManager sessionManager = new DocsPAWA.AdminTool.Manager.SessionManager(); InfoUtente adminUser = sessionManager.getUserAmmSession(); ValidationResultInfo resultInfo = CheckInOutAdminServices.ForceUndoCheckOutAdminDocument(adminUser, status); if (resultInfo.Value) { this.CheckOutStatusLocalList.Remove(status); this.FetchLocal(); retValue = true; } else { string errorMessage = string.Empty; foreach (BrokenRule brokenRule in resultInfo.BrokenRules) { if (errorMessage != string.Empty) { errorMessage += Environment.NewLine; } errorMessage += brokenRule.Description; } errorMessage = errorMessage.Replace("'", "\\'"); // Visualizzazione messaggio di errore this.RegisterClientScript("UndoCheckOutError", "alert('" + errorMessage + "');"); } return(retValue); }
/// <summary> /// CheckIn del documento corrente MTEXT /// </summary> private void CheckInMTextDocument(String file) { // Salvataggio del docNumber del documento in CheckOut CheckOutStatus ckSt = CheckOutAppletContext.Current.Status; if (UIManager.DocumentManager.getSelectedAttachId() != null) { ckSt = UIManager.DocumentManager.GetCheckOutDocumentStatus(UIManager.DocumentManager.GetSelectedAttachment().docNumber); } String docNumber = ckSt.DocumentNumber; // Estrai porzione del path di interesse per M/TEXT file = file.Substring(8); // Accedi a MTEXT per prelevare il PDF MTextModelProvider mtext = models.ModelProviderFactory <MTextModelProvider> .GetInstance(); // Preleva contenuto PDF Byte[] content = mtext.ExportDocument(file, "application/pdf"); // Fai sembrare il file M/TEXT un file FDF ckSt.DocumentLocation = "mtext.pdf"; // Effettua il checkin del documento NttDataWA.DocsPaWR.ValidationResultInfo result = CheckInOutServices.CheckInDocument(content); // Salva l'FQN del file M/TEXT NttDataWA.DocsPaWR.DocsPaWebService ws = new NttDataWA.DocsPaWR.DocsPaWebService(); ws.SetMTextFullQualifiedName(new NttDataWA.DocsPaWR.MTextDocumentInfo() { DocumentDocNumber = docNumber, FullQualifiedName = file }); if (!result.Value) { // Scrittura dei messaggi di errore nel checkin Response.Write(this.GetErrorMessage(result)); } }
/// <summary> /// Creazione tabella informazioni di stato sul blocco del documento /// </summary> /// <param name="status"></param> private void DrawTable(CheckOutStatus status) { Table table = new Table(); // Impostazione stili tabella table.Attributes.Add("align", "center"); table.Attributes.Add("border", "0"); table.CssClass = "info"; table.CellSpacing = 0; table.CellPadding = 5; table.Width = new Unit(400); table.Rows.Add(this.CreateHeaderTableRow()); string userInfo = string.Empty; if (status.UserName != null && status.UserName != string.Empty) { table.Rows.Add(CreateTableRow("Utente:", status.UserName)); } if (status.RoleName != null && status.RoleName != string.Empty) { table.Rows.Add(CreateTableRow("Ruolo:", status.RoleName)); } table.Rows.Add(CreateTableRow("Data:", status.CheckOutDate.ToString())); if (status.DocumentLocation != null && status.DocumentLocation != string.Empty) { table.Rows.Add(CreateTableRow("Percorso:", status.DocumentLocation)); } if (status.MachineName != null && status.MachineName != string.Empty) { table.Rows.Add(CreateTableRow("Computer:", status.MachineName)); } this.Controls.Add(table); }
/// <summary> /// Reperimento dei metadati sullo stato del checkout del documento /// </summary> /// <param name="idDocument"></param> /// <param name="documentNumber"></param> /// <returns></returns> protected virtual CheckOutStatus GetCheckOutStatus(string dctmId, string idDocument, string documentNumber) { CheckOutStatus retValue = null; bool isStampaRegistro = (DocsPaQueryHelper.isStampaRegistro(documentNumber)); PropertySet propertySet = this.LoadCheckOutProperties(documentNumber, isStampaRegistro); // Reperimento nome dell'utente che ha bloccato il documento string lockOwner = propertySet.Get("r_lock_owner").GetValueAsString(); if (!string.IsNullOrEmpty(lockOwner)) { // Se il documento è in stato checkout, creazione dell'oggetto "CheckOutStatus" retValue = new CheckOutStatus(); retValue.ID = dctmId; retValue.UserName = lockOwner; retValue.IDDocument = idDocument; retValue.DocumentNumber = documentNumber; DateProperty checkOutDate = (DateProperty)propertySet.Get("r_lock_date"); retValue.CheckOutDate = checkOutDate.Value.Value; // Attributi custom che è stato necessario aggiungere in documentum retValue.DocumentLocation = propertySet.Get(TypeDocumento.CHECKOUT_LOCAL_FILE_PATH).GetValueAsString(); retValue.MachineName = propertySet.Get(TypeDocumento.CHECKOUT_MACHINE_NAME).GetValueAsString(); if (!isStampaRegistro) { // Reperimento segnatura, solo se il documento è un protocollo string tipoProto = propertySet.Get(TypeDocumento.TIPO_PROTOCOLLO).GetValueAsString(); if (tipoProto.ToUpper() != "G") { retValue.Segnature = propertySet.Get("object_name").GetValueAsString(); } } } return(retValue); }
private void Page_Load(object sender, System.EventArgs e) { bool isApplet = (Request.QueryString["type"] != null && Request.QueryString["type"].ToString() == "AP"); bool isSocket = (Request.QueryString["type"] != null && Request.QueryString["type"].ToString() == "socket"); // Discrimina tra le diverse tipologie di documento String file = ""; if (UIManager.DocumentManager.getSelectedAttachId() != null) { CheckOutStatus tempStatus = UIManager.DocumentManager.GetCheckOutDocumentStatus(UIManager.DocumentManager.GetSelectedAttachment().docNumber); if (tempStatus != null) { file = UIManager.DocumentManager.GetCheckOutDocumentStatus(UIManager.DocumentManager.GetSelectedAttachment().docNumber).DocumentLocation; } } else { if (CheckOutAppletContext.Current != null && CheckOutAppletContext.Current.Status != null) { file = CheckOutAppletContext.Current.Status.DocumentLocation; } } if (file != String.Empty) { if (file.StartsWith("mtext://")) { this.CheckInMTextDocument(file); } else { this.CheckInDocument(isApplet, isSocket); } } else { this.CheckInDocument(isApplet, isSocket); } }
/// <summary> /// Creazione dei metadati di una nuova versione di un documento in etdocs /// </summary> /// <param name="fileRequest"></param> /// <param name="fileContent"></param> /// <param name="fileExtension"></param> /// <returns></returns> protected virtual bool AddCheckInVersion(InfoUtente infoUtente, CheckOutStatus checkOutStatus, string checkInComments, ref FileRequest fileRequest, byte[] fileContent, bool fileIsAcquired) { bool retValue = false; DocsPaDocumentale_ETDOCS.Documentale.DocumentManager documentManager = new DocsPaDocumentale_ETDOCS.Documentale.DocumentManager(infoUtente); //DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); //if (checkInOutDb.IsAcquired(fileRequest)) if (fileIsAcquired) { // Se per l'ultima versione del documento è stato acquisito un file, // viene creata nuova versione per il documento fileRequest = new FileRequest(); fileRequest.docNumber = checkOutStatus.DocumentNumber; fileRequest.descrizione = checkInComments; } else { // Se per l'ultima versione del documento non è stato acquisito un file, il file viene acquisito per l'ultima versione fileRequest.descrizione = checkInComments; retValue = true; } // Inserimento nuova versione in etdocs retValue = documentManager.AddVersion(fileRequest, false); System.IO.FileInfo fileInfo = new System.IO.FileInfo(checkOutStatus.DocumentLocation); //in OCS il nome del file coincide con il docNumber non con il versionId fileRequest.fileName = fileRequest.docNumber + fileInfo.Extension; fileRequest.fileSize = fileContent.Length.ToString(); // Impostazione del file come inserito in etdocs this.SetFileAsInserted(fileRequest, fileContent); return(retValue); }
/// <summary> /// /// </summary> /// <returns></returns> public static ValidationResultInfo UndoCheckOutDocument() { ValidationResultInfo retValue = null; if (CheckOutContext.Current != null && CheckOutContext.Current.Status != null) { CheckOutStatus checkOutStatus = CheckOutContext.Current.Status; retValue = _webServices.UndoCheckOutDocument(checkOutStatus, GetInfoUtente()); if (retValue.Value) { CheckOutContext.Current = null; } } else { retValue = new ValidationResultInfo(); retValue.Value = true; retValue.BrokenRules = new BrokenRule[0]; } return(retValue); }