Beispiel #1
0
        internal static IDMObjects.IFnDocumentDual getDocument(string id, string idamministrazione, string dst)
        {
            IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager();
            DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
            IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione);
            oLibrary.LogonId = dst;

            IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, id, oLibrary, null, null);
            return(docFNET);
        }
Beispiel #2
0
        internal static string createVersionFNET(string nomeFile, ref DocsPaVO.documento.FileRequest fileRequest, string idamministrazione, string dst)
        {
            IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager();
            try
            {
                string path = ConfigurationManager.AppSettings["FNET_pathServer"];

                DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
                IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione);

                oLibrary.LogonId = dst;
                IDMObjects.IFnFolderDual   folder  = DocumentManagement.getRootFolder(oLibrary);
                IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileRequest.docNumber, oLibrary, null, null);
                bool canCheckout = docFNET.GetState(IDMObjects.idmDocState.idmDocCanCheckout);

                if (canCheckout)
                {
                    docFNET.Version.CheckoutNoCopy();
                }
                else
                {
                    throw new Exception("Il file è utilizzato da un altro processo");
                }

                bool canCheckin = docFNET.GetState(IDMObjects.idmDocState.idmDocCanCheckin);

                docFNET.Version.Checkin(path, nomeFile, IDMObjects.idmCheckin.idmCheckinKeep);

                IDMObjects.Version vers = docFNET.Version;
                bool canIndex           = docFNET.GetState(IDMObjects.idmDocState.idmDocCanIndex);
                if (canIndex)
                {
                    vers.IndexContent(IDMObjects.idmIndex.idmIndexContent);
                }



                string numVers = getFNETnumVers(docFNET.Version.Number);
                //OLD: fileRequest.versionId =  numVers +	getFNETename(fileRequest.docNumber);
                fileRequest.fNversionId = numVers + getFNETename(fileRequest.docNumber);
                return(numVers);
            }
            catch (Exception e)
            {
                string msg = e.Message;
                for (int i = 0; i < idmErrorManager.Errors.Count; i++)
                {
                    msg += " " + idmErrorManager.Errors[i].Description;
                }
                throw new Exception(msg);
            }
        }
Beispiel #3
0
        internal void unlock(DocsPaVO.documento.FileRequest fileReq, string idamministrazione)
        {
            int numVersione = getNumVers(fileReq.versionId);

            DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
            IDMObjects.Library         oLibrary = userManager.getFileNETLib(idamministrazione);
            IDMObjects.IFnDocumentDual docFNET  = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileReq.docNumber, oLibrary, null, null);
            bool canCheckin = docFNET.GetState(IDMObjects.idmDocState.idmDocCanCheckin);

            if (canCheckin)
            {
                docFNET.Version.CancelCheckout(IDMObjects.idmCancelCheckout.idmCancelCheckoutNoKeep);
            }
        }
Beispiel #4
0
        internal static ArrayList RicercaFT(string testo, string idReg, InfoUtente infoUtente, int numPage, string dst,
                                            out int numTotPage, out int nRec)
        {
            logger.Debug("RicercaFT");

            numTotPage = 0;
            nRec       = 0;

            ArrayList resultSet = new ArrayList();

            DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
            IDMObjects.Library oLibrary = userManager.getFileNETLib(infoUtente.idAmministrazione);
            // oLibrary.LogonId = dst;

            DocsPaWrapperFilenet.FilenetFullTextClass fullTextClass = new DocsPaWrapperFilenet.FilenetFullTextClass();

            Array docNumbers = fullTextClass.RicercaFullText(testo, oLibrary.Name, "Admin", "");

            if (docNumbers == null || docNumbers.Length == 0)
            {
                return(null);
            }
            else
            {
                for (int i = 0; i <= docNumbers.Length - 1; i++)
                {
                    resultSet.Add(Int32.Parse(docNumbers.GetValue(i).ToString()));
                }
            }

            int numDocs = resultSet.Count;

            string[] resultKey = GetResultKeys(resultSet, numPage, numDocs);

            resultSet = GetListaDocumenti(resultKey, idReg, infoUtente);

            numTotPage = (numDocs / PAGE_SIZE);

            if (numTotPage * PAGE_SIZE < numDocs)
            {
                numTotPage++;
            }

            nRec = numDocs;

            return(resultSet);
        }
Beispiel #5
0
        internal void remove(DocsPaVO.documento.FileRequest fileReq, string idamministrazione, string versFNET, string dst)
        {
            // int numVersione = getNumVers(fileReq.versionId);
            int numVersione = getNumVers(versFNET);


            string strNumVersione = getFNETnumVers(numVersione.ToString());

            IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager();
            DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
            IDMObjects.Library oLibrary = userManager.getFileNETLib(idamministrazione);
            oLibrary.LogonId = dst;
            IDMObjects.IFnDocumentDual docFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileReq.docNumber, oLibrary, null, null);
            IDMObjects.IFnDocumentDual verFNET = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, fileReq.docNumber + ":" + strNumVersione, oLibrary, null, null);
            try
            {
                //TODO: 04/06/2007  (A.B.)
                //attualmente viene de-indicizzato il file acquisito sulla versione e/o allegato
                // non viene ne eliminata la versione Filenet ne eliminato il file vero è proprio
                //in quanto se rimosso viene messo off line la versione e nascono problemi
                //per eventuali versioni successive.
                docFNET.Version.IndexContent(IDMObjects.idmIndex.idmIndexContentDeindex);

                #region testing filenet
                //docFNET.Version.Series.Remove(numVersione);
                //docFNET.Version.Archive(IDMObjects.idmArchive.idmArchiveDispose);
                //string ArchivioFile = DocsPaDocumentale_FILENET.FilenetLib.DocumentManagement.checkFolderCompliance(oLibrary);
                //verFNET.Version.ArchiveEx(String.Empty);
                //removeVers(fileReq.versionId);
                //removeVers(versFNET);
                //docFNET.Version.Archive(IDMObjects.idmArchive.idmArchiveDispose);
                #endregion
            }
            catch (Exception e)
            {
                string msg = e.Message;
                for (int i = 0; i < idmErrorManager.Errors.Count; i++)
                {
                    msg += " " + idmErrorManager.Errors[i].Description;
                }
                throw new Exception(msg);
            }
        }
Beispiel #6
0
 public static bool RemoveDocument(string docnumber, string idamministrazione)
 {
     try
     {
         IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager();
         DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
         IDMObjects.Library         oLibrary = userManager.getFileNETLib(idamministrazione);
         IDMObjects.IFnDocumentDual docFNET  = (IDMObjects.IFnDocumentDual)oLibrary.GetObject(IDMObjects.idmObjectType.idmObjTypeDocument, docnumber, oLibrary, null, null);
         if (docFNET != null)
         {
             docFNET.Delete();
         }
         return(true);
     }
     catch (Exception exception)
     {
         logger.Debug("Errore durante la rimozione del documento.", exception);
         return(false);
     }
 }
Beispiel #7
0
        public static string CreateDocument(DocsPaVO.documento.SchedaDocumento schedaDoc, int idamministrazione,
                                            string dst)
        {
            string docNumber = null;


            try
            {
                ArrayList app = new ArrayList();
                logger.Debug("creazione Doc FileNET");
                IDMObjects.Library          oLibrary;
                IDMObjects.IFnFolderDual    folder;
                IDMObjects.ClassDescription cDescr;
                IDMObjects.IFnDocumentDual  doc;


                DocsPaDocumentale_FILENET.Documentale.UserManager userManager = new DocsPaDocumentale_FILENET.Documentale.UserManager();
                oLibrary         = userManager.getFileNETLib(idamministrazione.ToString());
                oLibrary.LogonId = dst;
                folder           = getRootFolder(oLibrary);

                logger.Debug("permesso folder =" + folder.GetState(IDMObjects.idmFolderState.idmFolderCanFileIn).ToString());
                string folderName = folder.ID.ToString() + " - " + folder.Name.ToString();
                logger.Debug("Folder: " + folderName);
                cDescr = getClassDocument(oLibrary);
                doc    = (IDMObjects.IFnDocumentDual)oLibrary.CreateObject(IDMObjects.idmObjectType.idmObjTypeDocument, cDescr, folder, 0, "");

                // set doc id
                IDMObjects.IFnPropertyDual propDocName = doc.Properties[1];
                propDocName.FormatValue();
                propDocName.Value = doc.ID.ToString();

                // set num. max versioni (online limit) custom prop.
                IDMObjects.IFnPropertyDual propMaxVersion = doc.Properties[3];
                propMaxVersion.FormatValue();
                propMaxVersion.Value = "99";


                //non serve retaggio della 2.0
                logger.Debug("prima di eliminare i permessi");
                //rimuovo i permessi che FN mette di default tipicamente security ad singolo utente
//				int numP = doc.Permissions.Count;
//				for (int i=1; i<= numP; i++)
//				{
//					doc.Permissions.Remove(doc.Permissions[1].ID);
//				}
                //non c'è bisogno di farlo basta impostare la proprietà:
                //Default Item Access List del gruppo come inserisci security per Gruppo/Admin.
                //doc.Permissions.Add(ConfigurationManager.AppSettings["FNET_userGroup"].ToString(),4);

                logger.Debug("crea prima versione");
                schedaDoc.systemId  = doc.ID.ToString();
                schedaDoc.docNumber = schedaDoc.systemId;

                schedaDoc = Versione.addFirstVersione(schedaDoc, doc);

                docNumber = schedaDoc.systemId;
                logger.Debug("documento creato");

                #region Codice Commentato
                //			if(documento.GetErrorCode() != 0)
                //			{
                //				throw new Exception("Errore nell'update del documento");
                //			}
                //
                //			documento.Status = DocsPaDocumentale.HummingbirdLib.Tipi.StatusType.Lock;
                //			documento.Update();
                //
                //			if(documento.GetErrorCode() != 0)
                //			{
                //				throw new Exception("Errore nell'update del documento");
                //			}
                #endregion
            }
            catch (Exception exception)
            {
                logger.Debug("Errore durante la creazione di un documento.", exception);
                docNumber = null;
            }

            return(docNumber);

            #region Codice Originale
            ////			string idAmministrazione = objSicurezza.idAmministrazione;
            ////			string library = DocsPaDB.Utils.Personalization.getInstance(objSicurezza.idAmministrazione).getLibrary();
            //
            //			documento = new DocsPaDocumentale.HummingbirdLib.Documento(this.userInfo.dst, library, DocsPaDocumentale.HummingbirdLib.Tipi.ObjectType.Cyd_CmnProjects);
            //
            //			/*
            //			docObj.SetProperty("DOCNAME", "");
            //			docObj.SetProperty("AUTHOR", schedaDoc.idPeople);
            //			docObj.SetProperty("AUTHOR_ID", schedaDoc.userId);
            //			docObj.SetProperty("TYPE_ID", schedaDoc.typeId);
            //			docObj.SetProperty( "TYPIST_ID", schedaDoc.userId);
            //			docObj.SetProperty("APP_ID", schedaDoc.appId);
            //			docObj.SetProperty( "%VERIFY_ONLY", "%NO" );
            //			*/
            //			documento.DocumentName = "";
            //			documento.Author = schedaDoc.idPeople;
            //			documento.AuthorId = schedaDoc.userId;
            //			documento.TypeId = schedaDoc.typeId;
            //			documento.TypistId = schedaDoc.userId;
            //			documento.AppId = schedaDoc.appId;
            //			documento.VerifyOnly = DocsPaDocumentale.HummingbirdLib.Tipi.VerifyOnlyType.No;
            //
            //			// è necessario inserire anche i permessi per l'utente TYPIST_ID
            //			documento.SetTrustee(schedaDoc.userId, 2, 0);
            //
            //			//docObj.SetTrustee("PRO_DIP1_DIRII_UFF",1,255);
            //			documento.Create();
            //
            //			/*
            //			DocsPaWS.Utils.ErrorHandler.checkPCDOperation(docObj,"Errore nella creazione del documento");
            //			*/
            //			if(documento.GetErrorCode() != 0)
            //			{
            //				throw new Exception("Errore nella creazione del documento");
            //			}
            //
            //
            //			/*
            //			string  docNumber = docObj.GetReturnProperty("%OBJECT_IDENTIFIER").ToString();
            //			*/
            //			string docNumber = documento.ObjectIdentifier;
            //
            //			//string versionId = docObj.GetReturnProperty("%VERSION_ID").ToString();
            //
            //			// unlock del documento
            //			//docObj.SetProperty("%OBJECT_IDENTIFIER", docNumber);
            //
            //			/*
            //			docObj.SetProperty("%STATUS", "%UNLOCK");
            //			*/
            //			documento.Status = DocsPaDocumentale.HummingbirdLib.Tipi.StatusType.Unlock;
            //
            //			documento.Update();
            //
            //			/*
            //			DocsPaWS.Utils.ErrorHandler.checkPCDOperation(docObj,"Errore nell'update del documento");
            //			*/
            //			if(documento.GetErrorCode() != 0)
            //			{
            //				throw new Exception("Errore nell'update del documento");
            //			}
            //
            //
            //
            //			//aggiorna flag daInviare
            //			//string updateStr = "UPDATE VERSIONS SET CHA_DA_INVIARE = '1'";
            //			string firstParam = "CHA_DA_INVIARE = '1'";
            //
            //			if(schedaDoc.documenti!=null && schedaDoc.documenti.Count>0)
            //			{
            //
            //				int lastDocNum=schedaDoc.documenti.Count-1;
            //
            //
            //				if(((DocsPaVO.documento.Documento)schedaDoc.documenti[lastDocNum]).dataArrivo!=null && !((DocsPaVO.documento.Documento)schedaDoc.documenti[lastDocNum]).dataArrivo.Equals(""))
            //				{
            //					firstParam += ", DTA_ARRIVO =" + DocsPaDbManagement.Functions.Functions.ToDate(((DocsPaVO.documento.Documento)schedaDoc.documenti[lastDocNum]).dataArrivo,false);
            //				}
            //			}
            //			//updateStr +=" WHERE DOCNUMBER=" + docNumber;
            //			//
            //			//db.executeNonQuery(updateStr);
            //			DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();
            //			doc.UpdateVersions(firstParam, docNumber);
            //
            //			return docNumber;
            #endregion
        }