public UIOMaticTypeInfo GetType(string typeName)
{
var currentType = Type.GetType(typeName);
var tableName = (TableNameAttribute)Attribute.GetCustomAttribute(currentType, typeof(TableNameAttribute));
var uioMaticAttri = (UIOMaticAttribute)Attribute.GetCustomAttribute(currentType, typeof(UIOMaticAttribute));
var ignoreColumnsFromListView = new List<string>();
var nameField = "";
var primaryKey = "id";
var primKeyAttri = currentType.GetCustomAttributes().Where(x => x.GetType() == typeof(PrimaryKeyAttribute));
if (primKeyAttri.Any())
primaryKey = ((PrimaryKeyAttribute)primKeyAttri.First()).Value;
foreach (var property in currentType.GetProperties())
{
var keyAttri = property.GetCustomAttributes().Where(x => x.GetType() == typeof(PrimaryKeyColumnAttribute));
if (keyAttri.Any())
primaryKey = property.Name;
var ignoreAttri = property.GetCustomAttributes().Where(x => x.GetType() == typeof(UIOMaticIgnoreFromListViewAttribute));
if (ignoreAttri.Any())
ignoreColumnsFromListView.Add(property.Name);
var nameAttri = property.GetCustomAttributes().Where(x => x.GetType() == typeof(UIOMaticNameFieldAttribute));
if (nameAttri.Any())
nameField = property.Name;
}
return new UIOMaticTypeInfo()
{
RenderType = uioMaticAttri.RenderType,
PrimaryKeyColumnName = primaryKey,
IgnoreColumnsFromListView = ignoreColumnsFromListView.ToArray(),
NameField = nameField,
ReadOnly = uioMaticAttri.ReadOnly
};
}