/// <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> /// 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); }
protected FileRequest getLastVersion(string idDocumento) { DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); // Reperimento dell'ultima versione del documento FileRequest fileRequest = checkInOutDb.GetFileRequest(idDocumento); return(fileRequest); }
/// <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, 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="infoUtente"></param> /// <param name="status"></param> /// <param name="content"></param> /// <param name="checkInComment"></param> private static bool CheckIn(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.CheckInOut.CheckOutStatus status, byte[] content, string checkInComment) { DocsPaVO.Validations.ValidationResultInfo result = BusinessLogic.CheckInOut.CheckInOutServices.CheckIn(status, infoUtente, content, checkInComment); // Rimozione documento da tabella di conversione logger.Debug("Eliminazione documento da DocRichiestaConversionePdf"); BusinessLogic.Documenti.DocManager.delDocRichiestaConversionePdf(status.IDDocument); DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); // Reperimento dell'ultima versione del documento FileRequest fileRequest = checkInOutDb.GetFileRequest(status.IDDocument); BusinessLogic.Documenti.FileManager.processFileInformation(fileRequest, infoUtente); return(result.Value); }
/// <summary> /// Verifica se la versione corrente del documento è acquisita /// </summary> /// <param name="idDocument"></param> /// <returns></returns> public static bool isDocumentAcquisito(string idDocument) { DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); return(checkInOutDb.IsAcquired(idDocument)); }
/// <summary> /// Reperimento primo numero di versione disponibile /// </summary> /// <param name="idDocument"></param> /// <returns></returns> public static int getDocumentNextVersionId(string idDocument) { DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); return(checkInOutDb.GetNextVersionId(idDocument)); }
/// <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); bool isAcquired = checkInOutDb.IsAcquired(fileRequest); if (isAcquired) { // Se per l'ultima versione del documento è stato acquisito un file, // viene creata nuova versione per il documento FileRequest newFileRequest = new FileRequest(); newFileRequest.fileName = checkOutStatus.DocumentLocation; newFileRequest.docNumber = checkOutStatus.DocumentNumber; newFileRequest.subVersion = "!"; newFileRequest.fileSize = checkedOutFileContent.Length.ToString(); newFileRequest.version = (Convert.ToInt32(fileRequest.version) + 1).ToString(); newFileRequest.versionLabel = newFileRequest.version; // Impostazione degli eventuali commenti da aggiungere alla versione newFileRequest.descrizione = checkInComments; newFileRequest.applicazione = this.GetApplication(fileDocument.estensioneFile); fileRequest = newFileRequest; } else { // Se per l'ultima versione del documento non è stato acquisito un file, // il file viene acquisito per l'ultima versione fileRequest.fileName = fileDocument.name; // Impostazione degli eventuali commenti da aggiungere alla versione fileRequest.descrizione = checkInComments; fileRequest.applicazione = this.GetApplication(fileDocument.estensioneFile); retValue = true; } string docNumber = fileRequest.docNumber; string version_id = fileRequest.versionId; string version = fileRequest.version; string subVersion = fileRequest.subVersion; string versionLabel = fileRequest.versionLabel; DocumentManager documentManager = new DocumentManager(this.InfoUtente); retValue = documentManager.AddVersion(fileRequest, isAcquired); if (retValue && !isAcquired) { retValue = documentManager.ModifyExtension(ref fileRequest, docNumber, version_id, version, subVersion, versionLabel); } if (retValue && fileDocument != null && fileDocument.content != null && fileDocument.content.Length > 0) { // Inserimento del nuovo file per la versione retValue = documentManager.PutFile(fileRequest, fileDocument, fileDocument.estensioneFile); } return(retValue); }
/// <summary> /// /// </summary> /// <param name="fileRequest"></param> /// <returns></returns> protected bool IsAcquired(DocsPaVO.documento.FileRequest fileRequest) { DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); return(checkInOutDb.IsAcquired(fileRequest)); }
/// <summary> /// /// </summary> /// <param name="idDocument"></param> /// <returns></returns> protected int GetNextVersionId(string idDocument) { DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); return(checkInOutDb.GetNextVersionId(idDocument)); }
public bool CheckIn(DocsPaVO.CheckInOut.CheckOutStatus checkOutStatus, byte[] content, string checkInComments) { //preparo il checkin su ETDOCS, se và bene lo faccio su OCS bool retValue = false; try { using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { 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 in etdocs // Reperimento dell'ultima versione del documento bool fileIsAcquired = false; FileRequest fileRequest = getLastVersion(checkOutStatus.IDDocument); DocsPaDB.Query_DocsPAWS.CheckInOut checkInOutDb = new DocsPaDB.Query_DocsPAWS.CheckInOut(); fileIsAcquired = checkInOutDb.IsAcquired(fileRequest); retValue = this.CreateDocumentVersion(checkOutStatus, checkInComments, content, fileIsAcquired, ref fileRequest); if (retValue) { //lavoro su OCS if (fileIsAcquired) //devo aggiungere una nuova versione su OCS { retValue = this.DocumentManagerOCS.AddVersion(fileRequest, false); } if (retValue) { FileDocumento fileDoc = new FileDocumento(); string estensione = fileRequest.fileName.Substring(fileRequest.fileName.LastIndexOf(".") + 1); fileDoc.cartaceo = fileRequest.cartaceo; fileDoc.content = content; fileDoc.estensioneFile = estensione; fileDoc.name = fileRequest.fileName; retValue = this.DocumentManagerOCS.PutFile(fileRequest, fileDoc, estensione); } if (retValue) { this.CheckInOutManagerOCS.CheckIn(checkOutStatus, content, checkInComments); } //NB: gestire gli errori e le transazioni !!! } } if (retValue) { transactionContext.Complete(); } } } catch (Exception ex) { logger.Debug(ex.Message, ex); throw new ApplicationException("Errore nel CheckIn del documento. IDDocumento: " + checkOutStatus.IDDocument, ex); } return(retValue); }