コード例 #1
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process);

            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
            if (m_expressionElementADissocier == null)
            {
                result.EmpileErreur(I.T("No element to be dissociated|169"));
                return(result);
            }
            result = m_expressionElementADissocier.Eval(contexteEval);
            if (!result)
            {
                result.EmpileErreur(I.T("Error in the elements to be dissociated formula|170"));
                return(result);
            }
            if (result.Data != null)
            {
                if (!(result.Data is CObjetDonneeAIdNumerique))
                {
                    result.EmpileErreur(I.T("The element to be dissociated formula must be return a work entity|167"));
                    return(result);
                }
                CComportementGenerique comportement = new CComportementGenerique(contexte.ContexteDonnee);
                if (!comportement.ReadIfExists(m_dbKeyComportement))
                {
                    return(result);
                }
                comportement.RemoveComportementFromObjet((CObjetDonneeAIdNumerique)result.Data);
            }
            return(result);
        }
コード例 #2
0
        /// ////////////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees()
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_expressionElementADissocier == null)
            {
                result.EmpileErreur(I.T("The element to be dissociated formula is incorrect|166"));
            }
            else
            {
                CTypeResultatExpression typeRes = m_expressionElementADissocier.TypeDonnee;
                if (!(typeRes.TypeDotNetNatif.IsSubclassOf(typeof(CObjetDonneeAIdNumerique))))
                {
                    result.EmpileErreur(I.T("The element to be dissociated formula must be return a work entity|167"));
                }
            }

            //Vérifie que le comportement existe
            CComportementGenerique comportement = new CComportementGenerique(Process.ContexteDonnee);

            if (!comportement.ReadIfExists(m_dbKeyComportement))
            {
                result.EmpileErreur(I.T("The behavior to be dissociated is incorrect|168"));
            }
            return(result);
        }
コード例 #3
0
        /// ////////////////////////////////////////////////////////
        protected override CResultAErreur MyExecute(CContexteExecutionAction contexte)
        {
            CResultAErreur result = CResultAErreur.True;

            CContexteEvaluationExpression contexteEval = new CContexteEvaluationExpression(Process);

            contexteEval.AttacheObjet(typeof(CContexteDonnee), contexte.ContexteDonnee);
            if (m_expressionElementAAssocier == null)
            {
                result.EmpileErreur(I.T("Not element to be associated|110"));
                return(result);
            }
            result = m_expressionElementAAssocier.Eval(contexteEval);
            if (!result)
            {
                result.EmpileErreur(I.T("Error in element to be associated formula|111"));
                return(result);
            }
            if (result.Data != null)
            {
                if (!(result.Data is CObjetDonneeAIdNumerique))
                {
                    result.EmpileErreur(I.T("The element to be associated formula doesn't return a work entity|112"));
                    return(result);
                }
                CComportementGenerique comportement = new CComportementGenerique(contexte.ContexteDonnee);
                if (!comportement.ReadIfExists(m_dbKeyComportement))
                {
                    result.EmpileErreur(I.T("The @1 behavior doesn't exist|113", m_dbKeyComportement.ToString()));
                    return(result);
                }
                comportement.AddComportementToObjet((CObjetDonneeAIdNumerique)result.Data);
            }
            return(result);
        }
コード例 #4
0
        //-------------------------------------------------------------------
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CComportementGenerique comportement = (CComportementGenerique)objet;

                if (comportement.Libelle == "")
                {
                    result.EmpileErreur(I.T("The label of the behavior cannot be empty|102"));
                }

                if (!CObjetDonneeAIdNumerique.IsUnique(comportement, CComportementGenerique.c_champLibelle, comportement.Libelle))
                {
                    result.EmpileErreur(I.T("A behavior with this label already exists|103"));
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }

            return(result);
        }
コード例 #5
0
        /// <summary>
        /// Retourne tous les comportements génériques induits par un définisseur
        /// </summary>
        /// <param name="definisseur"></param>
        /// <returns></returns>
        public static CComportementGenerique[] GetComportementsInduits(IDefinisseurEvenements definisseur)
        {
            CListeObjetsDonnees liste = new CListeObjetsDonnees(((CObjetDonnee)definisseur).ContexteDonnee, typeof(CRelationDefinisseurComportementInduit));

            liste.Filtre = new CFiltreData(
                CRelationDefinisseurComportementInduit.c_champTypeDefinisseur + "=@1 and " +
                CRelationDefinisseurComportementInduit.c_champIdDefinisseur + "=@2",
                definisseur.GetType().ToString(),
                definisseur.Id);
            CComportementGenerique[] lst = new CComportementGenerique[liste.Count];
            int nIndex = 0;

            foreach (CRelationDefinisseurComportementInduit rel in liste)
            {
                lst[nIndex++] = rel.Comportement;
            }

            return(lst);
        }
コード例 #6
0
        public static void AddComportementInduit(IDefinisseurEvenements definisseur, CComportementGenerique comportement)
        {
            CRelationDefinisseurComportementInduit relation = new CRelationDefinisseurComportementInduit(((CObjetDonnee)definisseur).ContexteDonnee);

            if (relation.ReadIfExists(
                    new CFiltreData(
                        CRelationDefinisseurComportementInduit.c_champTypeDefinisseur + "=@1 and " +
                        CRelationDefinisseurComportementInduit.c_champIdDefinisseur + "=@2 and " +
                        CComportementGenerique.c_champId + "=@3",
                        definisseur.GetType().ToString(),
                        definisseur.Id,
                        comportement.Id
                        )))
            {
                return;
            }
            relation.CreateNewInCurrentContexte();
            relation.Comportement       = comportement;
            relation.DefinisseurAssocie = (CObjetDonneeAIdNumerique)definisseur;
        }
コード例 #7
0
        public static void RemoveComportementInduit(IDefinisseurEvenements definisseur, CComportementGenerique comportement)
        {
            CRelationDefinisseurComportementInduit relation = new CRelationDefinisseurComportementInduit(comportement.ContexteDonnee);

            if (relation.ReadIfExists(
                    new CFiltreData(
                        CRelationDefinisseurComportementInduit.c_champTypeDefinisseur + "=@1 and " +
                        CRelationDefinisseurComportementInduit.c_champIdDefinisseur + "=@2 and " +
                        CComportementGenerique.c_champId + "=@3",
                        definisseur.GetType().ToString(),
                        definisseur.Id,
                        comportement.Id
                        )))
            {
                relation.Delete();
            }
        }