public CDefinitionFonctionDynamique( CFonctionDynamique fonction) : base( fonction.Nom, fonction.Nom, fonction.TypeRetourne, true, true) { StringBuilder bl = new StringBuilder(); bl.Append(fonction.Nom); bl.Append("("); foreach (CParametreFonctionDynamique parametre in fonction.Parametres) { bl.Append(parametre.Nom); bl.Append("; "); } if (fonction.Parametres.Count() > 0) { bl.Remove(bl.Length - 2, 2); } bl.Append(")"); m_strNomConvivial = bl.ToString(); m_strIdFonction = fonction.IdFonction; m_listeParametresDeLaFonction = new List <CParametreFonctionDynamique>(fonction.Parametres); }
//------------------------------------------------------------------------------------- public static CFonctionDynamique GetFonctionGlobale(string strIdFonction) { CFonctionDynamique fonction = null; m_dicFonctionsDynamiques.TryGetValue(strIdFonction, out fonction); if (fonction == null) { foreach (IFournisseurFonctionsDynamiquesSupplementaire f in m_listeFournisseursSupplementaires) { fonction = f.GetFonctionSupplementaire(strIdFonction); if (fonction != null) { break; } } } return(fonction); }
//------------------------------------------------------------------------------------- public static void RegisterFonctionDynamique(Type tp, CFonctionDynamique fonction) { if (fonction == null) { return; } List <CFonctionDynamique> lst = null; if (!m_dicFonctionsDynamiquesParType.TryGetValue(tp, out lst)) { lst = new List <CFonctionDynamique>(); m_dicFonctionsDynamiquesParType[tp] = lst; } CFonctionDynamique fExistante = lst.FirstOrDefault(f => f.IdFonction == fonction.IdFonction); if (fExistante != null) { lst.Remove(fExistante); } lst.Add(fonction); lst.Sort((x, y) => x.Nom.CompareTo(y.Nom)); m_dicFonctionsDynamiques[fonction.IdFonction] = fonction; }