//------------------------------------------------- public static CMappingRepToDocSetup GetMapping(string strRepertoire) { string[] strParts = strRepertoire.Split(' '); if (strParts.Length < 1) { return(null); } string strStart = strParts[0].Trim(); CMappingRepToDocSetup map = null; m_dicSetup.TryGetValue(strStart, out map); return(map); }
private CResultAErreur ImportRep(CProjet projetNominal, CProjet projetCandidat, CRepertoire rep, string strPathGed) { CResultAErreur result = CResultAErreur.True; rep.ImportDone = true; strPathGed += "\\" + rep.Nom; CMappingRepToDocSetup map = CMappingRepToDocSetup.GetMapping(rep.Nom); foreach (CFichier fichier in rep.GetChilds <CFichier>()) { if (map == null) { fichier.InfoImport = "No mapping for this directory"; } else { CObjetDonneeAIdNumerique objet = map.GetObjet(projetNominal, projetCandidat, fichier.Nom); if (objet == null) { fichier.InfoImport = "Can not find associated objet for this file"; } else { CCategorieGED cat = map.GetCatégorie(projetNominal.ContexteDonnee); if (cat == null) { fichier.InfoImport = "Can not find EDM category for this file"; } else { string strCode = objet.IdUniversel + "/" + fichier.Nom; CDocumentGED doc = new CDocumentGED(projetNominal.ContexteDonnee); if (!doc.ReadIfExists(new CFiltreData(CDocumentGED.c_champCle + "=@1", strCode))) { doc.CreateNewInCurrentContexte(); } doc.Libelle = fichier.Nom; doc.Cle = strCode; CReferenceDocument refDoc = new CReferenceDocument(); refDoc.TypeReference = new CTypeReferenceDocument(CTypeReferenceDocument.TypesReference.Fichier); refDoc.NomFichier = strPathGed + "\\" + fichier.Nom; doc.ReferenceDoc = refDoc; doc.AddCategory(cat); doc.AssocieA(objet); fichier.SetObjetAssocie(objet); } } } } foreach (CRepertoire child in rep.GetChilds <CRepertoire>()) { result = ImportRep(projetNominal, projetCandidat, child, strPathGed); if (!result) { return(result); } } return(result); }