internal static IAggregateFieldConfig LoadAggregateFieldConfig(PropertyInfo pi) { IAggregateFieldConfig config = null; if (config == null) { LightDataConfig lightDataConfig = GetConfig(); if (lightDataConfig != null && lightDataConfig.ContainAggregateTableConfig(pi.ReflectedType)) { AggregateTableConfig atconfig = lightDataConfig.GetAggregateTableConfig(pi.ReflectedType); IConfiguratorFieldConfig fieldConfig = atconfig[pi.Name]; if (fieldConfig != null) { if (fieldConfig is IgnoraFieldConfig) { return(null); } config = atconfig[pi.Name] as AggregateFieldConfig; } } } if (config == null) { AggregateFieldAttribute[] attributes = AttributeCore.GetPropertyAttributes <AggregateFieldAttribute>(pi, true); if (attributes.Length > 0) { config = attributes[0]; } } return(config); }
protected void InitialDataFieldMapping() { PropertyInfo[] propertys = ObjectType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo pi in propertys) { IAggregateFieldConfig config = ConfigManager.LoadAggregateFieldConfig(pi); if (config != null) { Type type = pi.PropertyType; string name = string.IsNullOrEmpty(config.Name) ? pi.Name : config.Name; AggregateFieldMapping mapping = new AggregateFieldMapping(type, name, pi.Name, this); mapping.Handler = new PropertyHandler(pi); //_fieldMappingDictionary.Add(mapping.Name, mapping); _fieldMappingDictionary.Add(mapping.IndexName, mapping); } } if (_fieldMappingDictionary.Count == 0) { throw new LightDataException(RE.AggregationFieldsIsNotExists); } }
public static PropertyInfo GetSpecifiedProperty(string specifiedPropertyName, Type mainType) { PropertyInfo[] propertys = mainType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo pi in propertys) { if (pi.Name == specifiedPropertyName && pi.PropertyType == typeof(Boolean)) { IDataFieldConfig dfconfig = ConfigManager.LoadDataFieldConfig(pi); if (dfconfig != null) { continue; } IAggregateFieldConfig afconfig = ConfigManager.LoadAggregateFieldConfig(pi); if (afconfig != null) { continue; } return(pi); } } return(null); }