private void SetDefaultServiceCtor(MappingOperationOptions options)
 {
     if (options.ServiceCtor == null)
     {
         DefaultMappingOptions(options);
     }
 }
        public object Map(object source, Type sourceType, Type destinationType, Action <IMappingOperationOptions> opts)
        {
            var options = new MappingOperationOptions();

            opts(options);

            return(MapCore(source, sourceType, destinationType, options));
        }
        public TDest Map <TDest>(object source)
        {
            TypeMap typeMap = _mapper.ConfigurationProvider.FindTypeMapFor(source, default(TDest), source.GetType(), typeof(TDest));

            var mappingOperationOptions = new MappingOperationOptions();
            var resolutionContext       = new ResolutionContext(typeMap, source, source.GetType(), typeof(TDest), mappingOperationOptions, Mapper.Engine);// IMappingEngine engine

            return((TDest)_mapper.Map(resolutionContext));
        }
        private object MapCore(object source, Type sourceType, Type destinationType, MappingOperationOptions options)
        {
            TypeMap typeMap = ConfigurationProvider.ResolveTypeMap(source, null, sourceType, destinationType);

            SetDefaultServiceCtor(options);
            var context = new ResolutionContext(typeMap, source, sourceType, destinationType, options, this);

            return(((IMappingEngineRunner)_inner).Map(context));
        }
        public TDestination Map <TSource, TDestination>(TSource source, TDestination destination, Action <IMappingOperationOptions <TSource, TDestination> > opts)
        {
            Type modelType       = typeof(TSource);
            Type destinationType = typeof(TDestination);

            var options = new MappingOperationOptions <TSource, TDestination>();

            opts(options);

            return((TDestination)MapCore(source, destination, modelType, destinationType, options));
        }
        public void DynamicMap(object source, object destination, Type sourceType, Type destinationType)
        {
            var typeMap = ConfigurationProvider.ResolveTypeMap(source, destination, sourceType, destinationType);

            var options = new MappingOperationOptions {
                CreateMissingTypeMaps = true
            };

            SetDefaultServiceCtor(options);
            var context = new ResolutionContext(typeMap, source, destination, sourceType, destinationType, options, this);

            ((IMappingEngineRunner)_inner).Map(context);
        }