//------------------------------------------------------------------ public CDefinitionProprieteDynamique[] GetDefinitionsChamps(Type typeInterroge, int nNbNiveaux, CDefinitionProprieteDynamique defParente) { List <CDefinitionProprieteDynamique> lst = new List <CDefinitionProprieteDynamique>(); CObjetPourSousProprietes objet = new CObjetPourSousProprietes(typeInterroge); foreach (IFournisseurProprieteDynamiquesSimplifie fournisseur in m_listeSousFournisseurs) { lst.AddRange(fournisseur.GetDefinitionsChamps(objet, defParente)); } foreach (CObjetPourSousProprietes objetSecondaire in m_associationsObjetsSupplementaires.GetObjetsAssocies(objet)) { foreach (IFournisseurProprieteDynamiquesSimplifie fournisseur in m_listeSousFournisseurs) { lst.AddRange(fournisseur.GetDefinitionsChamps(objetSecondaire, defParente)); } } NettoieListe(lst); lst.Sort((x, y) => x.Nom.CompareTo(y.Nom)); return(lst.ToArray()); }
//----------------------------------------------- public CDefinitionProprieteDynamique[] GetDefinitionsChamps(CObjetPourSousProprietes objet, CDefinitionProprieteDynamique defParente) { List <CDefinitionProprieteDynamique> lst = new List <CDefinitionProprieteDynamique>(); if (m_fournisseurPrincipal != null) { lst.AddRange(m_fournisseurPrincipal.GetDefinitionsChamps(objet, defParente)); } if (defParente == null) { foreach (CDefinitionProprieteDynamiqueVariableFormule var in m_listeVariables) { var.Rubrique = I.T("Variables|20085"); lst.Add(var); } } return(lst.ToArray()); }
//------------------------------------------------------------------ public CDefinitionProprieteDynamique[] GetDefinitionsChamps(CObjetPourSousProprietes objet, CDefinitionProprieteDynamique defParente) { List <CDefinitionProprieteDynamique> lst = new List <CDefinitionProprieteDynamique>(); CDefinitionMultiSourceForExpression multi = objet.ElementAVariableInstance as CDefinitionMultiSourceForExpression; if (multi != null) { lst.AddRange(GetDefinitionsChamps(multi.DefinitionObjetPrincipal)); } foreach (IFournisseurProprieteDynamiquesSimplifie fournisseur in m_listeSousFournisseurs) { lst.AddRange(fournisseur.GetDefinitionsChamps(objet, defParente)); } foreach (CObjetPourSousProprietes objetSecondaire in m_associationsObjetsSupplementaires.GetObjetsAssocies(objet)) { foreach (IFournisseurProprieteDynamiquesSimplifie fournisseur in m_listeSousFournisseurs) { lst.AddRange(fournisseur.GetDefinitionsChamps(objetSecondaire, defParente)); } } NettoieListe(lst); lst.Sort(); return(lst.ToArray()); }
public CDefinitionProprieteDynamique[] GetDefinitionsChamps(CObjetPourSousProprietes objet, CDefinitionProprieteDynamique defParente) { List <CDefinitionProprieteDynamique> lstProps = new List <CDefinitionProprieteDynamique>(); if (objet == null) { return(lstProps.ToArray()); } Type tp = objet.TypeAnalyse; if (tp == null) { return(lstProps.ToArray()); } //Va chercher les propriétés foreach (MethodInfo methode in tp.GetMethods()) { object[] attribs = methode.GetCustomAttributes(typeof(DynamicMethodAttribute), true); if (attribs.Length == 1) { DynamicMethodAttribute attrib = (DynamicMethodAttribute)attribs[0]; CTypeResultatExpression typeRes = CTypeResultatExpression.FromTypeDotNet(methode.ReturnType); ParameterInfo[] parametres = methode.GetParameters(); StringBuilder bl = new StringBuilder(); bl.Append(methode.Name); bl.Append("("); foreach (ParameterInfo info in parametres) { bl.Append(info.Name); bl.Append("; "); } if (parametres.Length > 0) { bl.Remove(bl.Length - 2, 2); } bl.Append(")"); CDefinitionProprieteDynamique def = new CDefinitionMethodeDynamique( bl.ToString(), methode.Name, typeRes, CFournisseurGeneriqueProprietesDynamiques.HasSubProperties(typeRes.TypeDotNetNatif), attrib.Descriptif, attrib.InfosParametres); def.Rubrique = I.T("Methods|58"); lstProps.Add(def); } } foreach (CMethodeSupplementaire methode in CGestionnaireMethodesSupplementaires.GetMethodsForType(tp)) { CDefinitionProprieteDynamique def = new CDefinitionMethodeDynamique( methode.Name, methode.Name, new CTypeResultatExpression(methode.ReturnType, methode.ReturnArrayOfReturnType), CFournisseurGeneriqueProprietesDynamiques.HasSubProperties(methode.ReturnType)); def.Rubrique = I.T("Methods|58"); lstProps.Add(def); } return(lstProps.ToArray()); }
//----------------------------------------------- public CDefinitionProprieteDynamique[] GetDefinitionsChamps(Type typeInterroge, int nNbNiveaux, CDefinitionProprieteDynamique defParente) { List <CDefinitionProprieteDynamique> lst = new List <CDefinitionProprieteDynamique>(); if (m_fournisseurPrincipal != null) { lst.AddRange(m_fournisseurPrincipal.GetDefinitionsChamps(typeInterroge, nNbNiveaux, defParente)); } foreach (CDefinitionProprieteDynamiqueVariableFormule var in m_listeVariables) { var.Rubrique = I.T("Variables|20085"); lst.Add(var); } return(lst.ToArray()); }
//---------------------------------------------------------------------------------------- public CDefinitionProprieteDynamique[] GetDefinitionsChamps(Type typeInterroge, int nNbNiveaux, CDefinitionProprieteDynamique defParente) { if (m_table == null) { return(new CDefinitionProprieteDynamique[0]); } List <CDefinitionProprieteDynamique> lst = new List <CDefinitionProprieteDynamique>(); foreach (DataColumn col in m_table.Columns) { lst.Add(new CDefinitionProprieteDynamiqueDataColumn(col)); } return(lst.ToArray()); }
//---------------------------------------------------------------------------------------- public CDefinitionProprieteDynamique[] GetDefinitionsChamps(CObjetPourSousProprietes objet, CDefinitionProprieteDynamique defParente) { if (objet != null) { return(GetDefinitionsChamps(objet.TypeAnalyse, 0, defParente)); } return(new CDefinitionProprieteDynamique[0]); }
//---------------------------------------------------------- public static CResultAErreur GetValue(object objet, CDefinitionProprieteDynamique defProp) { return(GetValue(objet, defProp, null)); }
//---------------------------------------------------------- /// <summary> /// Le data du result contient la valeur de la propriété pour l'objet /// </summary> /// <param name="objet"></param> /// <param name="strPropriete"></param> /// <returns></returns> public static CResultAErreur GetValue(object objet, string strProprieteComplete, CCacheValeursProprietes cache) { CResultAErreur result = CResultAErreur.True; IApplatisseurProprietes applatisseur = objet as IApplatisseurProprietes; if (applatisseur != null) { objet = applatisseur.GetObjetPourPropriete(strProprieteComplete); } if (cache != null && objet != null) { object valeur = cache.GetValeurCache(objet, strProprieteComplete); if (valeur != null) { result.Data = valeur; return(result); } } string[] strProprietes = strProprieteComplete.Split('.'); string strPropriete = strProprietes[0]; string strSuitePropriete = ""; if (strProprieteComplete.Length > strPropriete.Length) { strSuitePropriete = strProprieteComplete.Substring(strPropriete.Length + 1); } string strCleType = ""; string strProprieteSansCle = ""; if (CDefinitionProprieteDynamique.DecomposeNomProprieteUnique(strPropriete, ref strCleType, ref strProprieteSansCle)) { object objetSource = null; if (cache != null) { objetSource = cache.GetValeurCache(objet, strPropriete); } if (objetSource == null) { strPropriete = strProprieteSansCle; Type tpInterpreteur = null; if (m_tableCleTypeToTypeInterpreteur.TryGetValue(strCleType.ToUpper(), out tpInterpreteur)) { IInterpreteurProprieteDynamique interpreteur = Activator.CreateInstance(tpInterpreteur) as IInterpreteurProprieteDynamique; if (interpreteur != null) { result = interpreteur.GetValue(objet, strPropriete); if (!result) { return(result); } objetSource = result.Data; if (result && cache != null) { cache.StockeValeurEnCache(objet, strProprietes[0], objetSource); } } } else { result.EmpileErreur(I.T("Can not find parser for @1|20001", strPropriete)); return(result); } } if (objetSource != null && strSuitePropriete.Length > 0) { result = GetValue(objetSource, strSuitePropriete); if (result && cache != null) { cache.StockeValeurEnCache(objet, strProprieteComplete, result.Data); } } return(result); } if (m_oldInterpreteur != null) { result.Data = m_oldInterpreteur.GetValue(objet, strProprieteComplete); return(result); } result.EmpileErreur(I.T("Bad property format (@1)|20000", strPropriete)); return(result); }
public static CDefinitionProprieteDynamique GetProprieteInverse(Type typePortantLaPropriete, CDefinitionProprieteDynamique def) { CDefinitionProprieteDynamique defInverse = null; List <Type> lstFournisseurs = null; if (m_dicTypeDefToFournisseursInverses.TryGetValue(def.GetType(), out lstFournisseurs)) { foreach (Type tp in lstFournisseurs) { IFournisseurProprieteDynamiqueInverse f = Activator.CreateInstance(tp) as IFournisseurProprieteDynamiqueInverse; if (f != null) { defInverse = f.GetProprieteInverse(typePortantLaPropriete, def); if (defInverse != null) { return(defInverse); } } } } return(null); }
/// ///////////////////////////////////////////////////////////////////// public CArbreDefinitionsDynamiques(CDefinitionProprieteDynamique def) { m_definition = def; }
public CDefinitionProprieteDynamique[] GetDefinitionsChamps(CObjetPourSousProprietes objet, CDefinitionProprieteDynamique defParente) { try { if (objet.ElementAVariableInstance != null) { return(objet.ElementAVariableInstance.GetProprietesInstance()); } } catch { } return(new CDefinitionProprieteDynamique[0]); }