public static XpandCalcMemberInfo CreateCalculabeMember(this XPClassInfo classInfo, string propertyName, Type propertyType, params Attribute[] attributes) { var newMemberInfo = new XpandCalcMemberInfo(classInfo, propertyName, propertyType, null, true, false); foreach (Attribute attribute in attributes) { newMemberInfo.AddAttribute(attribute); } return(newMemberInfo); }
private static void CreateXpandDefaultProperty(ITypesInfo typesInfo) { var infos = typesInfo.PersistentTypes.Select(info => new{ TypeInfo = info, Attribute = info.FindAttribute <XpandDefaultPropertyAttribute>() }) .Where(arg => arg.Attribute != null).ToList(); foreach (var info in infos.Where(arg => arg.TypeInfo.Base.FindAttribute <XpandDefaultPropertyAttribute>() == null)) { var classInfo = Dictiorary.GetClassInfo(info.TypeInfo.Type); var memberInfo = new XpandCalcMemberInfo(classInfo, info.Attribute.MemberName, typeof(string), info.Attribute.Expression); if (info.Attribute.InVisibleInAllViews) { memberInfo.AddAttribute(new InvisibleInAllViewsAttribute()); } typesInfo.RefreshInfo(info.TypeInfo); ((TypeInfo)info.TypeInfo).DefaultMember = info.TypeInfo.FindMember(info.Attribute.MemberName); } }