private void processReferences(Type type, IList<PropertyMetadata> properties){ foreach (var property in type.GetProperties().Where(p => p.hasAttribute(typeof (RefAttribute)))){ var r = property.getFirstAttribute<RefAttribute>(); var a = r.Alias; if (a.noContent()){ a = storage.Resolve(property.PropertyType).Name; } PropertyMetadata lookup = null; if (r.AutoComplete.noContent() && !r.IsAutoComplete){ var luData = string.Format("hql:from {0}", a); if (r.LookupData.hasContent()){ luData = r.LookupData; } lookup = new PropertyMetadata(property.Name, property.PropertyType, luData, r.Nullable); } else{ lookup = new PropertyMetadata(property.Name, property.PropertyType); lookup.IsNullable = r.Nullable; lookup.Autocomplete = true; lookup.AutocompleteType = r.AutoCompleteType; lookup.AutocompleteCustom = r.AutoComplete; } if (r.Title.hasContent()){ lookup.SetTitle(r.Title); } properties.Add(lookup); } }
private void processMaps(Type type, IList<PropertyMetadata> properties){ foreach (var property in type.GetProperties().Where(p => p.hasAttribute(typeof (MapAttribute)))){ var r = property.getFirstAttribute<MapAttribute>(); var name = r.Title; if (name.noContent()){ name = property.Name; } var prop = new PropertyMetadata(property.Name, property.PropertyType).SetTitle(name); if (property.PropertyType.IsEnum){ prop.FixedList = string.Join(",", Enum.GetNames(property.PropertyType)); } properties.Add(prop); } }