public object Map(ResolutionContext context, IMappingEngineRunner mapper)
        {
            var destExpressArgType = context.DestinationType.GetSinglePredicateExpressionArgumentType();
            var toSourceExpression = EquivilentExpressions.GetEquivilentExpression(context.SourceType, destExpressArgType) as IToSingleSourceEquivalentExpression;

            return(toSourceExpression.ToSingleSourceExpression(context.SourceValue));
        }
        public bool IsMatch(TypePair typePair)
        {
            var destExpressArgType = typePair.DestinationType.GetSinglePredicateExpressionArgumentType();

            if (destExpressArgType == null)
            {
                return(false);
            }
            var expression = EquivilentExpressions.GetEquivilentExpression(typePair.SourceType, destExpressArgType);

            return(expression != null);
        }
        public bool IsMatch(ResolutionContext context)
        {
            var destExpressArgType = context.DestinationType.GetSinglePredicateExpressionArgumentType();

            if (destExpressArgType == null)
            {
                return(false);
            }
            var expression = EquivilentExpressions.GetEquivilentExpression(context.SourceType, destExpressArgType);

            return(expression is IToSingleSourceEquivalentExpression);
        }
        public static Expression <Func <TDestination, bool> > Map <TSource, TDestination>(TSource source)
        {
            var toSourceExpression = EquivilentExpressions.GetEquivilentExpression(typeof(TSource), typeof(TDestination)) as IEquivilentExpression <TSource, TDestination>;

            return(toSourceExpression.ToSingleSourceExpression(source));
        }
 private static IEquivilentExpression GetEquivilentExpression(TypePair typePair)
 {
     return(EquivilentExpressions.GetEquivilentExpression(TypeHelper.GetElementType(typePair.SourceType), TypeHelper.GetElementType(typePair.DestinationType)));
 }
 private static IEquivilentExpression GetEquivilentExpression(ResolutionContext context)
 {
     return(EquivilentExpressions.GetEquivilentExpression(TypeHelper.GetElementType(context.SourceType), TypeHelper.GetElementType(context.DestinationType)));
 }