/// <summary> /// 属性信息 /// </summary> /// <param name="property">属性信息</param> /// <param name="filter">选择类型</param> /// <param name="index">成员编号</param> public PropertyIndex(PropertyInfo property, MemberFilters filter, int index) : base(property, filter, index) { CanSet = property.CanWrite; CanGet = property.CanRead; MemberSystemType = property.PropertyType; }
/// <summary> /// 字段信息 /// </summary> /// <param name="field">字段信息</param> /// <param name="filter">选择类型</param> /// <param name="index">成员编号</param> public FieldIndex(FieldInfo field, MemberFilters filter, int index) : base(field, filter, index) { IsField = CanGet = true; CanSet = !field.IsInitOnly; MemberSystemType = field.FieldType; }
/// <summary> /// 成员方法 /// </summary> /// <param name="method">成员方法信息</param> /// <param name="filter">选择类型</param> /// <param name="index">成员编号</param> internal MethodIndex(MethodInfo method, MemberFilters filter, int index) : base(method, filter, index) { Method = method; ReturnType = MemberSystemType = method.ReturnType; Type[] genericParameters = method.GetGenericArguments(); Parameters = MethodParameter.Get(method, genericParameters); OutputParameters = Parameters.getFindArray(value => value.Parameter.ParameterType.IsByRef); GenericParameters = genericParameters.getArray(value => (ExtensionType)value); }
public MemberActivityLogViewModel(IMemberService memberService, DatabaseContext databaseContext, Guid?memberGuid = null) { Filters = new MemberFilters { From = DateTime.Today.AddMonths(-1), To = DateTime.Today, Page = 1, PageSize = 10 }; if (memberGuid.HasValue) { // Specific member IMember member = memberService.GetByKey(memberGuid.Value); // Only show this member's activity Filters.MemberId = member?.Id; } else { // All members Members = memberService .GetAll(0, int.MaxValue, out int _) .OrderBy(m => m.Name) .Select(m => new ApiMember { Id = m.Id, Name = m.Name, Guid = m.Key }); } SearchResults = ApiMemberLogItem.Search(Filters, databaseContext); Actions = Enums.Values <MemberAuditAction>() .ToDictionary(aa => (int)aa, aa => aa.GetDisplayName()) .ToList(); }
/// <summary> /// 获取匹配成员集合 /// </summary> /// <typeparam name="attributeType">自定义属性类型</typeparam> /// <param name="type">类型</param> /// <param name="filter">选择类型</param> /// <param name="isFilter">是否完全匹配选择类型</param> /// <param name="isAttribute">是否匹配自定义属性类型</param> /// <param name="isBaseType">指定是否搜索该成员的继承链以查找这些特性,参考System.Reflection.MemberInfo.GetCustomAttributes(bool inherit)。</param> /// <returns>匹配成员集合</returns> public static MemberIndexInfo[] Get <attributeType>(Type type, MemberFilters filter, bool isFilter, bool isAttribute, bool isBaseType) where attributeType : AutoCSer.Metadata.IgnoreMemberAttribute { return(getStatic(type).Find(filter, isFilter).getFindArray(value => isAttribute ? value.IsAttribute <attributeType>(isBaseType) : !value.IsIgnoreAttribute <attributeType>(isBaseType))); }
/// <summary> /// 获取字段成员集合 /// </summary> /// <typeparam name="valueType"></typeparam> /// <typeparam name="memberAttribute"></typeparam> /// <param name="memberFilter"></param> /// <param name="isAllMember"></param> /// <returns>字段成员集合</returns> internal static LeftArray <FieldIndex> GetFields <valueType, memberAttribute>(MemberFilters memberFilter, bool isAllMember) where memberAttribute : IgnoreMemberAttribute { FieldIndex[] fieldIndexs = AutoCSer.Metadata.MemberIndexGroup <valueType> .GetFields(memberFilter); LeftArray <FieldIndex> fields = new LeftArray <FieldIndex>(fieldIndexs.Length); foreach (FieldIndex field in fieldIndexs) { Type type = field.Member.FieldType; if (!type.IsPointer && (!type.IsArray || type.GetArrayRank() == 1) && !field.IsIgnore && !typeof(Delegate).IsAssignableFrom(type) && !typeof(Delegate).IsAssignableFrom(type)) { memberAttribute attribute = field.GetAttribute <memberAttribute>(true); if (isAllMember ? (attribute == null || attribute.IsSetup) : (attribute != null && attribute.IsSetup)) { fields.Add(field); } } } return(fields); }
/// <summary> /// 成员信息 /// </summary> /// <param name="member">成员信息</param> /// <param name="filter">选择类型</param> /// <param name="index">成员编号</param> internal MemberIndexInfo(MemberInfo member, MemberFilters filter, int index) { Member = member; MemberIndex = index; MemberFilters = filter; }
public InsertOperationBuilder() : this(MemberFilters.None()) { }
public static MemberIndex[] GetStaticMembers <attributeType>(Type type, MemberFilters filter, bool isAttribute, bool isBaseType) where attributeType : AutoCSer.Metadata.IgnoreMemberAttribute { return(find <MemberIndex, attributeType>(GetStaticMembers(type, filter), isAttribute, isBaseType)); }
/// <summary> /// 获取字段成员集合 /// </summary> /// <typeparam name="valueType"></typeparam> /// <param name="memberFilter"></param> /// <returns>字段成员集合</returns> internal static KeyValue <FieldInfo, int>[] GetFieldIndexs <valueType>(MemberFilters memberFilter) { return(MemberIndexGroup <valueType> .GetFields(memberFilter) .getArray(value => new KeyValue <FieldInfo, int>(value.Member, value.MemberIndex))); }
public Exclude() : base(MemberFilters.Exclude <TExclude>()) { }
/// <summary> /// 获取匹配成员集合 /// </summary> /// <typeparam name="attributeType">自定义属性类型</typeparam> /// <param name="type">类型</param> /// <param name="filter">选择类型</param> /// <param name="isFilter">是否完全匹配选择类型</param> /// <param name="isAttribute">是否匹配自定义属性类型</param> /// <param name="isBaseType">指定是否搜索该成员的继承链以查找这些特性,参考System.Reflection.MemberInfo.GetCustomAttributes(bool inherit)。</param> /// <returns>匹配成员集合</returns> internal static MemberIndexInfo[] Get <attributeType>(Type type, MemberFilters filter, bool isFilter, bool isAttribute, bool isBaseType) where attributeType : IgnoreMemberAttribute { return(Get(type).Find(filter, isFilter).getFindArray(value => isAttribute ? value.IsAttribute <attributeType>(isBaseType) : !value.IsIgnoreAttribute <attributeType>(isBaseType))); }
internal MemberIndexInfo[] Find(MemberFilters filter, bool isFilter = false) { return(get(value => isFilter ? (value.MemberFilters & filter) == filter : ((value.MemberFilters & filter) != 0))); }
/// <summary> /// 获取属性成员集合 /// </summary> /// <typeparam name="valueType"></typeparam> /// <typeparam name="memberAttribute"></typeparam> /// <param name="memberFilter"></param> /// <param name="isAllMember"></param> /// <param name="isGet">是否必须可读</param> /// <param name="isSet">是否必须可写</param> /// <returns>属性成员集合</returns> internal static LeftArray <PropertyIndex> GetProperties <valueType, memberAttribute>(MemberFilters memberFilter, bool isAllMember, bool isGet, bool isSet) where memberAttribute : IgnoreMemberAttribute { PropertyIndex[] propertyIndexs = AutoCSer.Metadata.MemberIndexGroup <valueType> .GetProperties(memberFilter); LeftArray <PropertyIndex> properties = new LeftArray <PropertyIndex>(propertyIndexs.Length); foreach (PropertyIndex property in propertyIndexs) { if ((!isGet || property.CanGet) && (!isSet || property.CanSet)) { Type type = property.Member.PropertyType; if (!type.IsPointer && (!type.IsArray || type.GetArrayRank() == 1) && !property.IsIgnore && !typeof(Delegate).IsAssignableFrom(type)) { memberAttribute attribute = property.GetAttribute <memberAttribute>(true); if (isAllMember ? (attribute == null || attribute.IsSetup) : (attribute != null && attribute.IsSetup)) { properties.Add(property); } } } } return(properties); }
public SearchResults <ApiMemberLogItem> SearchActivityLog(MemberFilters filters) { return(ApiMemberLogItem.Search(filters, DbContext)); }
public static LeftArray <MethodIndex> GetMethods(Type type, MemberFilters filter, bool isFilter) { return(getMethods(type).getFind(value => isFilter ? (value.MemberFilters & filter) == filter : ((value.MemberFilters & filter) != 0))); }
public static MethodIndex[] GetMethods <attributeType>(Type type, MemberFilters filter, bool isFilter, bool isAttribute, bool isBaseType) where attributeType : IgnoreMemberAttribute { return(getMethods <attributeType>(type, GetMethods(type, filter, isFilter), isAttribute, isBaseType)); }
public Include() : base(MemberFilters.Include <TInclude>()) { }
public static MemberIndex[] GetStaticMembers(Type type, MemberFilters filter) { return(getStaticMembers(type).getFindArray(value => (value.MemberFilters & filter) != 0)); }
public UpdateOperationBuilder() : this(MemberFilters.None()) { }
/// <summary> /// 成员信息 /// </summary> /// <param name="method">成员方法信息</param> /// <param name="filter">选择类型</param> /// <param name="index">成员编号</param> protected MemberIndex(MethodInfo method, MemberFilters filter, int index) : base(method, filter, index) { Member = method; MemberName = method.Name; }
/// <summary> /// 成员信息 /// </summary> /// <param name="index">成员编号</param> internal MemberIndexInfo(int index) { MemberIndex = index; IsField = CanSet = CanSet = true; MemberFilters = MemberFilters.PublicInstance; }