public CResultAErreur CopieFichierEnLocal(string strNomFichierLocal) { CResultAErreur result = CResultAErreur.True; if (m_referenceAttachee == null) { return(result); } result = CDocumentGED.GetDocument(m_nIdSession, m_referenceAttachee); if (!result) { return(result); } CSourceDocumentStream source = result.Data as CSourceDocumentStream; if (source != null) { m_fichierLocal.Extension = m_referenceAttachee.GetExtension(); m_fichierLocal.CreateNewFichier(strNomFichierLocal); m_strNomFichierLocal = m_fichierLocal.NomFichier; FileStream stream = new System.IO.FileStream(m_fichierLocal.NomFichier, System.IO.FileMode.Create); result = CStreamCopieur.CopyStream(source.SourceStream, stream, 32000); stream.Close(); stream.Dispose(); source.SourceStream.Close(); source.Dispose(); m_dateTimeFichierInGed = File.GetLastWriteTime(m_strNomFichierLocal); return(result); } CSourceDocumentLienDirect sourceDirecte = result.Data as CSourceDocumentLienDirect; if (sourceDirecte != null) { m_typeReferencePourGed = CTypeReferenceDocument.TypesReference.LienDirect; m_strNomFichierLocal = sourceDirecte.NomFichier; return(result); } return(result); }
//--------------------------------------------------------------------- /// <summary> /// Le data du result contient la nouvelle référence au document /// </summary> /// <returns></returns> public CResultAErreur UpdateGed(bool bIncrementeVersionFichier) { CResultAErreur result = CResultAErreur.True; try { //Regarde si le fichier a été modifié try { DateTime dt = File.GetLastWriteTime(m_strNomFichierLocal); if (dt == m_dateTimeFichierInGed) { return(result); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("EDM updating error|112")); return(result); } CSourceDocument sourceDoc = null; switch (TypeReference) { case CTypeReferenceDocument.TypesReference.Fichier: FileStream fs = new FileStream(m_strNomFichierLocal, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); int nIndex = m_strNomFichierLocal.LastIndexOf("."); string strExtension = ""; if (nIndex > 0) { strExtension = m_strNomFichierLocal.Substring(nIndex + 1); } else { strExtension = "dat"; } sourceDoc = new CSourceDocumentStream(fs, strExtension); break; case CTypeReferenceDocument.TypesReference.LienDirect: sourceDoc = new CSourceDocumentLienDirect(m_strNomFichierLocal); break; } if (sourceDoc == null) { result.EmpileErreur(I.T("Error in document transfering to EDM |113")); return(result); } result = CDocumentGED.SaveDocument(m_nIdSession, sourceDoc, new CTypeReferenceDocument(TypeReference), m_referenceAttachee, bIncrementeVersionFichier); sourceDoc.Dispose(); if (result) { m_referenceAttachee = (CReferenceDocument)result.Data; m_dateTimeFichierInGed = File.GetLastWriteTime(m_strNomFichierLocal); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Error in document transfering to EDM|113")); } return(result); }