Ejemplo n.º 1
0
        public static ObjectMappingData <TSource, TTarget> ForChild <TSource, TTarget>(
            TSource source,
            TTarget target,
            int?enumerableIndex,
            string targetMemberRegistrationName,
            int dataSourceIndex,
            IObjectMappingDataUntyped parent)
        {
            var mapperKey = new ChildObjectMapperKey(
                MappingTypes <TSource, TTarget> .Fixed,
                targetMemberRegistrationName,
                dataSourceIndex);

            var mappingData = CreateMappingData(source, target, enumerableIndex, mapperKey, parent);

            if (!ChildMappersNeeded(mappingData.Parent))
            {
                return(mappingData);
            }

            var parentMappingData = GetParentMappingData(mappingData);

            var mapperData = parentMappingData.MapperData.ChildMapperDatas.HasOne()
                ? parentMappingData.MapperData.ChildMapperDatas.First()
                : parentMappingData.MapperData.ChildMapperDatas.First(md =>
                                                                      (md.DataSourceIndex == dataSourceIndex) &&
                                                                      (md.TargetMember.RegistrationName == targetMemberRegistrationName));

            mappingData.SetMapper(mapperData.Mapper);

            return(mappingData);
        }
Ejemplo n.º 2
0
        public static ObjectMappingData <TSource, TTarget> ForChild <TSource, TTarget>(
            TSource source,
            TTarget target,
            int?elementIndex,
            object elementKey,
            string targetMemberRegistrationName,
            int dataSourceIndex,
            IObjectMappingDataUntyped parent)
        {
            var mapperKey = new ChildObjectMapperKey(
                MappingTypes <TSource, TTarget> .Fixed,
                targetMemberRegistrationName,
                dataSourceIndex);

            var mappingData = CreateMappingData(source, target, elementIndex, elementKey, mapperKey, parent);

            if (!mappingData.SubMappingNeeded(out var parentMappingData))
            {
                return(mappingData);
            }

            var mapperData = parentMappingData.MapperData.ChildMapperDatasOrEmpty.FirstOrDefault(md =>
                                                                                                 (md.DataSourceIndex == dataSourceIndex) &&
                                                                                                 (md.TargetMember.RegistrationName == targetMemberRegistrationName));

            if (mapperData != null)
            {
                mappingData.SetMapper(mapperData.Mapper);
            }

            return(mappingData);
        }
Ejemplo n.º 3
0
        public static ObjectMappingData <TSourceElement, TTargetElement> ForElement <TSourceElement, TTargetElement>(
            TSourceElement sourceElement,
            TTargetElement targetElement,
            int enumerableIndex,
            IObjectMappingDataUntyped parent)
        {
            var mapperKey = new ElementObjectMapperKey(MappingTypes <TSourceElement, TTargetElement> .Fixed);

            var mappingData = CreateMappingData(sourceElement, targetElement, enumerableIndex, mapperKey, parent);

            if (ChildMappersNeeded(mappingData.Parent))
            {
                mappingData.SetMapper(
                    GetParentMappingData(mappingData).MapperData.ChildMapperDatas.First().Mapper);
            }

            return(mappingData);
        }
Ejemplo n.º 4
0
        public static ObjectMappingData <TSourceElement, TTargetElement> ForElement <TSourceElement, TTargetElement>(
            TSourceElement sourceElement,
            TTargetElement targetElement,
            int enumerableIndex,
            IObjectMappingDataUntyped parent)
        {
            var mapperKey = new ElementObjectMapperKey(MappingTypes.Fixed <TSourceElement, TTargetElement>());

            var mappingDataParent = (IObjectMappingData)parent;

            return(new ObjectMappingData <TSourceElement, TTargetElement>(
                       sourceElement,
                       targetElement,
                       enumerableIndex,
                       mapperKey,
                       mappingDataParent.MappingContext,
                       mappingDataParent));
        }
Ejemplo n.º 5
0
        public static ObjectMappingData <TSourceElement, TTargetElement> ForElement <TSourceElement, TTargetElement>(
            TSourceElement sourceElement,
            TTargetElement targetElement,
            int elementIndex,
            object elementKey,
            IObjectMappingDataUntyped parent)
        {
            var mapperKey = new ElementObjectMapperKey(MappingTypes <TSourceElement, TTargetElement> .Fixed);

            var mappingData = CreateMappingData(sourceElement, targetElement, elementIndex, elementKey, mapperKey, parent);

            if (mappingData.SubMappingNeeded(out var parentMappingData))
            {
                mappingData.SetMapper(
                    parentMappingData.MapperData.ChildMapperDatas.First().Mapper);
            }

            return(mappingData);
        }
Ejemplo n.º 6
0
        private static ObjectMappingData <TSource, TTarget> CreateMappingData <TSource, TTarget>(
            TSource source,
            TTarget target,
            int?enumerableIndex,
            ObjectMapperKeyBase mapperKey,
            IObjectMappingDataUntyped parent)
        {
            var mappingDataParent = (IObjectMappingData)parent;

            return(new ObjectMappingData <TSource, TTarget>(
                       source,
                       target,
                       enumerableIndex,
                       mapperKey.MappingTypes,
                       mappingDataParent.MappingContext,
                       mappingDataParent)
            {
                MapperKey = mapperKey
            });
        }
Ejemplo n.º 7
0
        public static ObjectMappingData <TSource, TTarget> ForChild <TSource, TTarget>(
            TSource source,
            TTarget target,
            int?enumerableIndex,
            string targetMemberRegistrationName,
            int dataSourceIndex,
            IObjectMappingDataUntyped parent)
        {
            var mapperKey = new ChildObjectMapperKey(
                targetMemberRegistrationName,
                dataSourceIndex,
                MappingTypes.Fixed <TSource, TTarget>());

            var mappingDataParent = (IObjectMappingData)parent;

            return(new ObjectMappingData <TSource, TTarget>(
                       source,
                       target,
                       enumerableIndex,
                       mapperKey,
                       mappingDataParent.MappingContext,
                       mappingDataParent));
        }