Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
        }
Example #5
0
        /// <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);
        }
Example #6
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));
        }
Example #7
0
        /// <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());
            }
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        /// <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);
        }
Example #11
0
        /// <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);
        }
Example #12
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);
        }
        /// <summary>
        /// Caricamento dati relativamente allo stato del documento bloccato
        /// </summary>
        private void Fetch()
        {
            CheckOutStatus status = CheckInOutServices.GetCheckOutDocumentStatus();

            if (status != null)
            {
                this.DrawTable(status);
            }
        }
Example #14
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);
        }
Example #15
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 retValue = false;

            // Reperimento dell'ultima versione del documento
            FileRequest fileRequest = this.GetFileRequest(checkOutStatus);

            retValue = this.AddCheckInVersion(this.InfoUtente, checkOutStatus, checkInComments, fileRequest, content);

            return(retValue);
        }
Example #16
0
        /// <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);
        }
Example #17
0
        /// <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);
            }
        }
Example #18
0
        /// <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);
        }
Example #19
0
        /// <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);
        }
Example #20
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);
        }
Example #21
0
        /// <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);
        }
Example #22
0
        /// <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);
        }
Example #23
0
        /// <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);
        }
Example #24
0
        /// <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);
        }
Example #25
0
        /// <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);
        }
Example #27
0
        /// <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);
        }
Example #28
0
        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);
            }
        }
Example #29
0
        /// <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);
        }
Example #30
0
        /// <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);
        }