Exemple #1
0
        /// //////////////////////////////////////////////////////////////
        public CResultAErreur Ajouter(CListeObjetsDonnees listePourFormEdition,
                                      IEnumerable <CAffectationsProprietes> affectations)
        {
            CResultAErreur  result = CResultAErreur.True;
            CContexteDonnee ctx    = null;

            if (ObjetContainer != null)
            {
                ctx = ObjetContainer.ContexteDonnee;
            }
            else
            {
                ctx = CSc2iWin32DataClient.ContexteCourant;
            }
            CObjetDonneeAIdNumeriqueAuto objet = (CObjetDonneeAIdNumeriqueAuto)Activator.CreateInstance(m_typeObjet, new object[] { ctx });

            objet.CreateNew();

            if (ObjetContainer != null)
            {
                PropertyInfo prop = objet.GetType().GetProperty(m_strChampLienParent);
                if (prop == null)
                {
                    throw new Exception(I.T("The property @1 has not been found in the class @2 |30025", m_strChampLienParent, objet.GetType().ToString()));
                }
                //throw new Exception("La propriété '"+m_strChampLienParent+"' n'a pas"+
                //	" été trouvée dans la classe "+objet.GetType());
                MethodInfo method    = prop.GetSetMethod();
                object[]   container = { ObjetContainer };
                method.Invoke(objet, container);
            }
            bool bCancel = false;

            if (OnNewObjetDonnee != null)
            {
                OnNewObjetDonnee(this, objet, ref bCancel);
            }

            if (bCancel)
            {
                objet.CancelCreate();
                result.EmpileErreur(I.T("Creation canceled|20007"));
                return(result);
            }



            if (BeforeAfficheForm != null)
            {
                BeforeAfficheForm(null, null);
            }
            IFormNavigable frm = (IFormNavigable)NewCFormEdition(objet, listePourFormEdition);

            if (frm == null)
            {
                result.EmpileErreur(I.T("Impossible to add an element|30026"));
                return(result);
            }
            if (frm is CFormEditionStandard)
            {
                ((CFormEditionStandard)frm).AfterValideModification      += new ObjetDonneeEventHandler(frm_AfterValideCreateObjetDonnee);
                ((CFormEditionStandard)frm).AffectationsPourNouvelElement = affectations;
            }
            Navigateur.AffichePage(frm);

            if (!Navigateur.Visible)
            {
                CSc2iWin32DataNavigation.PushNavigateur(Navigateur);
                Navigateur.ShowDialog();
                CSc2iWin32DataNavigation.PopNavigateur();
            }
            return(result);
        }