/// <summary> /// Creates the filter expression node. /// </summary> /// <param name="pattern">The pattern.</param> /// <param name="displayName">The display name.</param> /// <param name="metaClass">The meta class.</param> /// <returns></returns> protected virtual IEnumerable <ElementDefs> GetElementDefsByMetaClass(string pattern, MetaClass metaClass) { if (metaClass == null) { throw new ArgumentNullException("metaClass"); } foreach (MetaField field in metaClass.MetaFields) { if (customFieldFiter.All(x => x(field))) { IEnumerable <ElementDefs> conditonDef; if (MetaDataType2ElDefMap.TryGetValue(field.DataType, out conditonDef)) { string codeExpr = string.IsNullOrEmpty(pattern) ? field.Name : string.Format(pattern, field.Name); string dynamicKey = ElementDefs.GetDynamicKey(metaClass.Name + "." + field.Name + "." + codeExpr); ElementDefs retVal = new ElementDefs() { Key = dynamicKey, Name = codeExpr, Descr = field.FriendlyName, Conditions = conditonDef }; yield return(retVal); } } } }