public Expression GetConditionOrNull( IMemberMapperData mapperData, CallbackPosition position, QualifiedMember targetMember) { if (!HasCondition) { return(null); } var condition = _conditionLambda.GetBody(mapperData, position, targetMember); if (_negateCondition) { condition = Expression.Not(condition); } var targetCanBeNull = position.IsPriorToObjectCreation(targetMember); var conditionNestedAccessesChecks = mapperData .GetExpressionInfoFor(condition, targetCanBeNull) .NestedAccessChecks; if (conditionNestedAccessesChecks != null) { condition = Expression.AndAlso(conditionNestedAccessesChecks, condition); } return(condition); }
public Expression GetCallbackOrNull( CallbackPosition position, IBasicMapperData basicData, IMemberMapperData mapperData) { return(_mappingCallbackFactories?.FirstOrDefault(f => f.AppliesTo(position, basicData))?.Create(mapperData)); }
private static Expression GetPopulationCallbackOrEmpty( CallbackPosition position, IMemberPopulation memberPopulation, IObjectMappingData mappingData) { return(GetMappingCallbackOrNull(position, memberPopulation.MapperData, mappingData.MapperData)); }
protected static Expression GetMappingCallbackOrNull( CallbackPosition callbackPosition, IBasicMapperData basicData, IMemberMapperData mapperData) { return(mapperData.MapperContext.UserConfigurations.GetCallbackOrNull(callbackPosition, basicData, mapperData)); }
private static Expression GetPopulationCallbackOrNull( CallbackPosition position, IMemberPopulator memberPopulator, IObjectMappingData mappingData) { return(memberPopulator.MapperData.GetMappingCallbackOrNull(position, mappingData.MapperData)); }
public CallbackSpecifier( MappingConfigInfo configInfo, CallbackPosition callbackPosition, QualifiedMember targetMember) : base(callbackPosition, configInfo) { _targetMember = targetMember; }
public Expression GetCreationCallbackOrNull(CallbackPosition position, IMemberMapperData mapperData) { if (_creationCallbackFactories.None()) { return(null); } return(_creationCallbackFactories.FirstOrDefault(f => f.AppliesTo(position, mapperData))?.Create(mapperData)); }
public ObjectCreationCallbackFactory( MappingConfigInfo configInfo, Type creationTargetType, CallbackPosition callbackPosition, ConfiguredLambdaInfo callbackLambda) : base(configInfo, callbackPosition, callbackLambda, QualifiedMember.All) { _creationTargetType = creationTargetType; }
public static bool IsPriorToObjectCreation(this CallbackPosition position, QualifiedMember targetMember) { if (position != CallbackPosition.Before) { return(false); } return((targetMember == QualifiedMember.All) || (targetMember == QualifiedMember.None)); }
public MappingCallbackFactory( MappingConfigInfo configInfo, CallbackPosition callbackPosition, ConfiguredLambdaInfo callbackLambda, QualifiedMember targetMember) : base(configInfo, targetMember) { CallbackPosition = callbackPosition; _callbackLambda = callbackLambda; }
public CallbackSpecifier( MapperContext mapperContext, CallbackPosition callbackPosition, QualifiedMember targetMember) : this( MappingConfigInfo.AllRuleSetsAndSourceTypes(mapperContext).ForTargetType <TTarget>(), callbackPosition, targetMember) { }
public Expression GetConditionOrNull( IMemberMapperData mapperData, CallbackPosition position, QualifiedMember targetMember) { if (!HasCondition) { return(GetTypeCheckConditionOrNull(mapperData)); } var condition = _conditionLambda.GetBody(mapperData, position, targetMember); if (_negateCondition) { condition = Expression.Not(condition); } var targetCanBeNull = position.IsPriorToObjectCreation(targetMember); var conditionNestedAccessesChecks = mapperData .GetNestedAccessesIn(condition, targetCanBeNull) .GetIsNotDefaultComparisonsOrNull(); if (conditionNestedAccessesChecks != null) { condition = Expression.AndAlso(conditionNestedAccessesChecks, condition); } var typeCheck = GetTypeCheckConditionOrNull(mapperData); if (typeCheck != null) { condition = Expression.AndAlso(typeCheck, condition); } return(condition); }
protected CallbackSpecifierBase(CallbackPosition callbackPosition, MappingConfigInfo configInfo) { CallbackPosition = callbackPosition; ConfigInfo = configInfo; }
public virtual bool AppliesTo(CallbackPosition callbackPosition, IBasicMapperData mapperData) => (CallbackPosition == callbackPosition) && base.AppliesTo(mapperData);
protected override Expression GetConditionOrNull(IMemberMapperData mapperData, CallbackPosition position) { mapperData.Context.UsesMappingDataObjectAsParameter = ConfigInfo.ConditionUsesMappingDataObjectParameter; return(base.GetConditionOrNull(mapperData, position)); }
public InstanceCreationCallbackSpecifier(CallbackPosition callbackPosition, MapperContext mapperContext) : this(callbackPosition, MappingConfigInfo.AllRuleSetsAndSourceTypes(mapperContext).ForTargetType <TTarget>()) { }
public InstanceCreationCallbackSpecifier(CallbackPosition callbackPosition, MappingConfigInfo configInfo) : base(callbackPosition, configInfo) { }
public Expression GetCreationCallbackOrNull(CallbackPosition position, IMemberMapperData mapperData) => _creationCallbackFactories?.FirstOrDefault(f => f.AppliesTo(position, mapperData))?.Create(mapperData);
internal EventConfigStartingPointBase(MappingConfigInfo configInfo, CallbackPosition callbackPosition) { _configInfo = configInfo; _callbackPosition = callbackPosition; }
protected override Expression GetConditionOrNull(IMemberMapperData mapperData, CallbackPosition position) { var condition = base.GetConditionOrNull(mapperData, position); if ((CallbackPosition != CallbackPosition.After) || mapperData.TargetMemberIsUserStruct()) { return(condition); } var newObjectHasBeenCreated = mapperData.CreatedObject.GetIsNotDefaultComparison(); if (condition == null) { return(newObjectHasBeenCreated); } return(Expression.AndAlso(newObjectHasBeenCreated, condition)); }
public override bool AppliesTo(CallbackPosition callbackPosition, IBasicMapperData mapperData) => mapperData.TargetMember.Type.IsAssignableTo(_creationTargetType) && base.AppliesTo(callbackPosition, mapperData);
protected virtual Expression GetConditionOrNull(IMemberMapperData mapperData, CallbackPosition position) => ConfigInfo.GetConditionOrNull(mapperData, position, TargetMember);
private static Expression GetCreationCallbackOrNull(CallbackPosition callbackPosition, IMemberMapperData mapperData) => mapperData.MapperContext.UserConfigurations.GetCreationCallbackOrNull(callbackPosition, mapperData);