Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
 /// <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;
 }
Esempio n. 3
0
 /// <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();
        }
Esempio n. 5
0
 /// <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)));
 }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
 /// <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;
 }
Esempio n. 8
0
 public InsertOperationBuilder() : this(MemberFilters.None())
 {
 }
Esempio n. 9
0
 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));
 }
Esempio n. 10
0
 /// <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)));
 }
Esempio n. 11
0
 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)));
 }
Esempio n. 14
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);
        }
Esempio n. 15
0
 public SearchResults <ApiMemberLogItem> SearchActivityLog(MemberFilters filters)
 {
     return(ApiMemberLogItem.Search(filters, DbContext));
 }
Esempio n. 16
0
 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)));
 }
Esempio n. 17
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));
 }
Esempio n. 18
0
 public Include() : base(MemberFilters.Include <TInclude>())
 {
 }
Esempio n. 19
0
 public static MemberIndex[] GetStaticMembers(Type type, MemberFilters filter)
 {
     return(getStaticMembers(type).getFindArray(value => (value.MemberFilters & filter) != 0));
 }
Esempio n. 20
0
 public UpdateOperationBuilder() : this(MemberFilters.None())
 {
 }
Esempio n. 21
0
 /// <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;
 }
Esempio n. 22
0
 /// <summary>
 /// 成员信息
 /// </summary>
 /// <param name="index">成员编号</param>
 internal MemberIndexInfo(int index)
 {
     MemberIndex   = index;
     IsField       = CanSet = CanSet = true;
     MemberFilters = MemberFilters.PublicInstance;
 }