Exemplo n.º 1
0
        private void Expand(MappingPlanData planData)
        {
            if (_generatedPlanData.Contains(planData))
            {
                return;
            }

            _generatedPlanData.Add(planData);

            var mapCalls = MapCallFinder.FindIn(planData.Lambda);

            foreach (var mapCall in mapCalls)
            {
                Func <MethodCallExpression, MappingPlanData> mappingLambdaFactory;

                if (IsObjectMemberMapping(mapCall))
                {
                    mappingLambdaFactory = planData.GetChildMappingPlanData;
                }
                else
                {
                    mappingLambdaFactory = planData.GetElementMappingPlanData;
                }

                Expand(mappingLambdaFactory.Invoke(mapCall));
            }
        }
Exemplo n.º 2
0
        public MappingPlan(IMappingContext mappingContext)
        {
            _generatedPlanData = new List <MappingPlanData>();

            var rootMappingData = mappingContext
                                  .CreateRootMappingData(default(TSource), default(TTarget));

            var rootPlanData = new MappingPlanData(rootMappingData);

            Expand(rootPlanData);
        }