//-------------------------------------------------------------------------------- private void AddDoc(string strNomFichier, IEnumerable <CCategorieGED> lstCats) { CDocumentGED doc = new CDocumentGED(m_contexteDonnee); doc.CreateNewInCurrentContexte(); doc.Libelle = Path.GetFileName(strNomFichier); foreach (CObjetDonneeAIdNumerique objet in m_wndDocuments.GetListeAssociations(m_source)) { doc.AssocieA(objet); } foreach (CCategorieGED categorie in lstCats) { doc.AddCategory(categorie); } C2iWndDocumentsGed.CInfoAffectationDocumentToGed info = new C2iWndDocumentsGed.CInfoAffectationDocumentToGed(strNomFichier, m_source); CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(info); foreach (CAffectationsProprietes aff in m_wndDocuments.Affectations) { CResultAErreur result = CResultAErreur.True; result.Data = true; if (aff.FormuleCondition != null) { result = aff.FormuleCondition.Eval(ctx); } if (result && result.Data is bool && (bool)result.Data) { result = aff.AffecteProprietes(doc, info, m_fournisseurProprietes); if (!result) { result.EmpileErreur(I.T("Some values cannot be assigned to EDM Document")); CFormAfficheErreur.Show(result.Erreur); } } } CNouveauDoc nouveauDoc = new CNouveauDoc(doc, strNomFichier); m_listeDocuments.Add(doc); m_listeNouveauxDocs.Add(nouveauDoc); UpdateVisuel(); }
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); }