//-------------------------------------------------
        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);
        }
Exemple #2
0
        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);
        }