예제 #1
0
        private static Expression GetLinkOrdering(
            Expression sourceEnumerable,
            ParameterExpression linkParameter,
            Member forwardLink,
            IMemberMapperData mapperData)
        {
            var orderMember =
                mapperData.GetOrderMember(linkParameter.Type) ??
                mapperData.GetIdentifierOrNull(forwardLink.Type)?.MemberInfo;

            if (orderMember == null)
            {
                return(sourceEnumerable);
            }

            var orderMemberAccess = Expression.MakeMemberAccess(
                (orderMember.DeclaringType != linkParameter.Type)
                    ? forwardLink.GetAccess(linkParameter)
                    : linkParameter,
                orderMember);

            return(sourceEnumerable.WithOrderingLinqCall(
                       nameof(Enumerable.OrderBy),
                       linkParameter,
                       orderMemberAccess));
        }
        public static bool IsEntity(this IMemberMapperData mapperData, Type type, out Member idMember)
        {
            if (type == null)
            {
                idMember = null;
                return(false);
            }

            idMember = mapperData.GetIdentifierOrNull(type);

            return(idMember?.IsEntityId() == true);
        }
예제 #3
0
        public static bool IsEntity(this IMemberMapperData mapperData, Type type, out Member idMember)
        {
            if ((type == null) ||
                type.Name.EndsWith("ViewModel", Ordinal) ||
                type.Name.EndsWith("Dto", Ordinal) ||
                type.Name.EndsWith("DataTransferObject", Ordinal))
            {
                idMember = null;
                return(false);
            }

            idMember = mapperData.GetIdentifierOrNull(type);

            return(idMember?.IsEntityId() == true);
        }
예제 #4
0
 public static MemberInfo GetOrderMember(this IMemberMapperData mapperData, Type type)
 {
     return(type.GetPublicInstanceMember("Order") ??
            type.GetPublicInstanceMember("DateCreated") ??
            mapperData.GetIdentifierOrNull(type)?.MemberInfo);
 }