コード例 #1
0
 /// //////////////////////////////////// /////////////////////////////////
 public C2iExpressionMethodeDynamique(CDefinitionFonctionDynamique definitionFonction)
 {
     if (definitionFonction != null)
     {
         m_definitionFonction = definitionFonction;
         m_strNomMethode      = definitionFonction.NomProprieteSansCleTypeChamp;
     }
 }
コード例 #2
0
        /// /////////////////////////////////////////////////
        /// Le data du result contient l'expression
        protected override CResultAErreur GetExpressionMethode(string strMethode)
        {
            CDefinitionMethodeDynamique  definitionMethode  = null;
            CDefinitionFonctionDynamique definitionFonction = null;
            CResultAErreur result = CResultAErreur.True;

            if (m_contexteAnalyse.FournisseurProprietes == null)
            {
                result.EmpileErreur(I.T("The property supplier parser cannot recognize the methods|144"));
                return(result);
            }
            else
            {
                if (!IsAnalyseExpressionObjet())
                {
                    string strNomUpper = strMethode.ToUpper();
                    foreach (CDefinitionProprieteDynamique def in m_contexteAnalyse.GetDefinitionsChamps(m_contexteAnalyse.ObjetAnalyse))
                    {
                        if (def is CDefinitionMethodeDynamique)
                        {
                            if (def.Nom.ToUpper() == strNomUpper || def.NomPropriete.ToUpper() == strNomUpper)
                            {
                                definitionMethode = (CDefinitionMethodeDynamique)def;
                                break;
                            }
                        }
                        if (def is CDefinitionFonctionDynamique)
                        {
                            if (def.NomPropriete.ToUpper() == strNomUpper)
                            {
                                definitionFonction = (CDefinitionFonctionDynamique)def;
                                break;
                            }
                        }
                    }
                }

                /*if ( definitionMethode == null )
                 * {
                 *      //Définition temporaire, elle n'existe pas dans le type de base
                 *      definitionMethode = new CDefinitionMethodeDynamique(strMethode, strMethode, null, false);
                 * }*/
                if (definitionFonction != null)
                {
                    result.Data = new C2iExpressionMethodeDynamique(definitionFonction);
                }
                else if (definitionMethode != null)
                {
                    result.Data = new C2iExpressionMethodeDynamique(definitionMethode);
                }
                else
                {
                    result.Data = new C2iExpressionMethodeDynamique(strMethode);
                }
                return(result);
            }
        }
コード例 #3
0
 public CRequeteRechercheObjet GetRequeteRecherche()
 {
     if (Fonction != null)
     {
         CDefinitionFonctionDynamique defF = new CDefinitionFonctionDynamique(Fonction);
         return(new CRequeteRechercheObjet(
                    I.T("Search function '@1'|20083", Nom),
                    defF));
     }
     return(null);
 }
コード例 #4
0
        /// //////////////////////////////////// /////////////////////////////////
        public override CResultAErreur SetTypeObjetInterroge(CObjetPourSousProprietes objetPourProprietes, IFournisseurProprietesDynamiques fournisseur)
        {
            CResultAErreur result = base.SetTypeObjetInterroge(objetPourProprietes, fournisseur);

            if (!result)
            {
                return(result);
            }
            ObjetPourAnalyseSourceConnu = objetPourProprietes;
            if (objetPourProprietes == null)
            {
                return(result);
            }
            if (DefinitionMethode != null)
            {
                return(result);
            }
            if (DefinitionFonction != null)
            {
                return(result);
            }
            string strNomUpper = m_strNomMethode.ToUpper();

            foreach (CDefinitionProprieteDynamique prop in fournisseur.GetDefinitionsChamps(objetPourProprietes))
            {
                if (prop is CDefinitionMethodeDynamique)
                {
                    if (prop.NomProprieteSansCleTypeChamp.ToUpper() == strNomUpper ||
                        prop.Nom.ToUpper() == strNomUpper)
                    {
                        m_definitionMethode = (CDefinitionMethodeDynamique)prop;
                        return(result);
                    }
                }
                if (prop is CDefinitionFonctionDynamique)
                {
                    if (prop.NomProprieteSansCleTypeChamp.ToUpper() == strNomUpper ||
                        prop.Nom.ToUpper() == strNomUpper)
                    {
                        m_definitionFonction = (CDefinitionFonctionDynamique)prop;
                        return(result);
                    }
                }
            }
            result.EmpileErreur(I.T("The @1 method doesn't exit in the @2 type|120", m_strNomMethode,
                                    objetPourProprietes != null? objetPourProprietes.ToString():"null"));

            return(result);
        }
コード例 #5
0
        public CMotVocabulaire(CDefinitionProprieteDynamique propriete)
        {
            CDefinitionMethodeDynamique  defMethode  = propriete as CDefinitionMethodeDynamique;
            CDefinitionFonctionDynamique defFonction = propriete as CDefinitionFonctionDynamique;

            if (defMethode != null || defFonction != null)
            {
                m_strMot = propriete.Nom;
            }
            else
            {
                m_strMot = "[" + propriete.Nom + "]";
            }
            m_strIndex          = propriete.Nom.ToUpper();;
            m_proprieteAssociee = propriete;
        }
コード例 #6
0
        //-----------------------------------------------------------------------------------------------
        public IEnumerable <CDefinitionProprieteDynamique> GetDefinitionsFonctionsSupplementaires(CObjetPourSousProprietes objet)
        {
            List <CDefinitionProprieteDynamique> lstProps = new List <CDefinitionProprieteDynamique>();

            if (objet == null)
            {
                return(lstProps.ToArray());
            }
            Type tp = objet.TypeAnalyse;

            if (tp == null)
            {
                return(lstProps.ToArray());
            }

            if (!C2iFactory.IsInit())
            {
                return(lstProps.ToArray());
            }

            CContexteDonnee     contexte = CContexteDonneeSysteme.GetInstance();
            CListeObjetsDonnees liste    = new CListeObjetsDonnees(contexte, typeof(CFonctionDynamiqueInDb));

            liste.Filtre = new CFiltreData(CFonctionDynamiqueInDb.c_champTypeObjets + "=@1", tp.ToString());
            foreach (CFonctionDynamiqueInDb fonctionInDb in liste)
            {
                CFonctionDynamique fonction = fonctionInDb.Fonction;
                if (fonction != null)
                {
                    CDefinitionFonctionDynamique def = new CDefinitionFonctionDynamique(fonction);
                    if (fonctionInDb.Categorie.Length == 0)
                    {
                        def.Rubrique = I.T("Methods|58");
                    }
                    else
                    {
                        def.Rubrique = fonctionInDb.Categorie;
                    }
                    lstProps.Add(def);
                }
            }
            return(lstProps.ToArray());
        }