Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public object Map(ResolutionContext context, IMappingEngineRunner mapper)
- {
- if (context.TypeMap.CustomMapper != null)
- {
- return MapUsingCustomMapper(context);
- }
- var profileConfiguration = mapper.ConfigurationProvider.GetProfileConfiguration(context.TypeMap.Profile);
- if (context.SourceValue == null && profileConfiguration.MapNullSourceValuesAsNull)
- {
- return null;
- }
- if (context.DestinationValue == null && context.InstanceCache.ContainsKey(context))
- {
- return context.InstanceCache[context];
- }
- return MapUsingMappingEngineRunner(context, mapper);
- }
- private static object MapUsingCustomMapper(ResolutionContext context)
- {
- context.TypeMap.BeforeMap(context.SourceValue, null);
- object mappedObject = context.TypeMap.CustomMapper(context);
- context.TypeMap.AfterMap(context.SourceValue, mappedObject);
- return mappedObject;
- }
- private static object MapUsingMappingEngineRunner(ResolutionContext context, IMappingEngineRunner mapper)
- {
- object mappedObject = context.DestinationValue ?? mapper.CreateObject(context.DestinationType);
- if (context.DestinationValue == null && context.SourceValue != null)
- {
- context.InstanceCache.Add(context, mappedObject);
- }
- context.TypeMap.BeforeMap(context.SourceValue, mappedObject);
- foreach (PropertyMap propertyMap in context.TypeMap.GetPropertyMaps())
- {
- MapPropertyValue(context, mapper, mappedObject, propertyMap);
- }
- return mappedObject;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement