예제 #1
0
        /// <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));
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
        /// <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);
        }
예제 #7
0
 /// <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));
 }
예제 #8
0
 /// <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));
 }
예제 #9
0
        /// <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);
        }
예제 #10
0
        /// <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));
        }
예제 #11
0
        /// <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));
        }
예제 #12
0
        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);
        }