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); }
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); }
public static MemberInfo GetOrderMember(this IMemberMapperData mapperData, Type type) { return(type.GetPublicInstanceMember("Order") ?? type.GetPublicInstanceMember("DateCreated") ?? mapperData.GetIdentifierOrNull(type)?.MemberInfo); }