public AddedMapContext CreateMap <DestMember, Source, Dest, TService>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) where TService : class, IYuzuTypeFactory <DestMember> { var settings = baseSettings as YuzuPropertyFactoryMapperSettings; if (settings != null) { config.AddActiveManualMap <TService, Dest>(settings.DestPropertyName); Func <Source, Dest, object, ResolutionContext, DestMember> mappingFunction = (Source m, Dest v, object o, ResolutionContext context) => { var propertyResolver = factory.GetInstance(typeof(TService)) as TService; var yuzuContext = contextFactory.From <UmbracoMappingContext>(context.Items); return(propertyResolver.Create(yuzuContext)); }; var map = mapContext.AddOrGet <Source, Dest>(cfg); map.ForMember(settings.DestPropertyName, opt => opt.MapFrom(mappingFunction)); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuPropertyFactoryMapperSettings"); } }
public AddedMapContext CreateMap <Source, Dest, Resolver>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) where Resolver : class, IYuzuTypeAfterConvertor <Source, Dest> { var settings = baseSettings as YuzuTypeAfterMapperSettings; if (settings != null) { config.AddActiveManualMap <Resolver, Dest>(); var map = mapContext.AddOrGet <Source, Dest>(cfg); Action <Source, Dest, ResolutionContext> mappingFunction = (Source source, Dest dest, ResolutionContext context) => { var typeConvertor = factory.GetInstance(typeof(Resolver)) as Resolver; var yuzuContext = contextFactory.From <UmbracoMappingContext>(context.Items); typeConvertor.Apply(source, dest, yuzuContext); }; map.AfterMap(mappingFunction); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuTypeMappingSettings"); } }
public AddedMapContext CreateMap <Source, Dest, TService>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) where TService : class, IYuzuTypeConvertor <Source, Dest> { var settings = baseSettings as YuzuTypeConvertorMapperSettings; if (settings != null) { config.AddActiveManualMap <TService, Dest>(); if (settings.IgnoreReturnType) { importConfig.IgnoreViewmodels.Add(typeof(Dest).Name); } var map = mapContext.AddOrGet <Source, Dest>(cfg); Func <Source, Dest, ResolutionContext, Dest> mappingFunction = (Source source, Dest dest, ResolutionContext context) => { var typeConvertor = factory.GetInstance(typeof(TService)) as TService; var yuzuContext = contextFactory.From <UmbracoMappingContext>(context.Items); return(typeConvertor.Convert(source, yuzuContext)); }; map.ConvertUsing(mappingFunction); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuTypeMappingSettings"); } }
public AddedMapContext CreateMap <Source, DestMember, Dest, Resolver>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) where Resolver : class, IYuzuPropertyAfterResolver <Source, DestMember> { var settings = baseSettings as YuzuPropertyAfterMapperSettings; if (settings != null) { //need a fix here //config.AddActiveManualMap<Resolver, Dest>(settings.DestProperty); if (!string.IsNullOrEmpty(settings.GroupName)) { cfg.RecognizePrefixes(settings.GroupName); } Func <DestMember, DestMember> mappingFunction = (DestMember input) => { var propertyResolver = factory.GetInstance(typeof(Resolver)) as Resolver; return(propertyResolver.Apply(input)); }; var map = mapContext.AddOrGet <Source, Dest>(cfg); map.ForMember <DestMember>(settings.DestProperty as Expression <Func <Dest, DestMember> >, opt => opt.AddTransform(x => mappingFunction(x))); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuPropertyMappingSettings"); } }
public AddedMapContext CreateMap <Source, DestParent, DestChild>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) { var settings = baseSettings as YuzuGroupMapperSettings; if (settings != null) { var groupNameWithoutSpaces = settings.GroupName.Replace(" ", ""); cfg.RecognizePrefixes(groupNameWithoutSpaces); mapContext.AddOrGet <Source, DestChild>(cfg); var parentMap = mapContext.AddOrGet <Source, DestParent>(cfg); parentMap.ForMember(settings.PropertyName, opt => opt.MapFrom(y => y)); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuGroupMapperSettings"); } }
public AddedMapContext CreateMap <Source, DestMember, Dest, Resolver>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) where Resolver : class, IYuzuPropertyReplaceResolver <Source, DestMember> { var settings = baseSettings as YuzuPropertyMapperSettings; if (settings != null) { config.AddActiveManualMap <Resolver, Dest>(settings.DestPropertyName); if (settings.IgnoreProperty) { importConfig.IgnorePropertiesInViewModels.Add(new KeyValuePair <string, string>(typeof(Dest).Name, settings.DestPropertyName)); } if (settings.IgnoreReturnType) { if (typeof(DestMember).IsGenericType) { importConfig.IgnoreViewmodels.Add(typeof(DestMember).GetGenericArguments().Select(x => x.Name).FirstOrDefault()); } else { importConfig.IgnoreViewmodels.Add(typeof(DestMember).Name); } } if (!string.IsNullOrEmpty(settings.GroupName)) { cfg.RecognizePrefixes(settings.GroupName); } Func <Source, Dest, object, ResolutionContext, DestMember> mappingFunction = (Source m, Dest v, object o, ResolutionContext context) => { var propertyResolver = factory.GetInstance(typeof(Resolver)) as Resolver; var yuzuContext = contextFactory.From <UmbracoMappingContext>(context.Items); return(propertyResolver.Resolve(m, yuzuContext)); }; var map = mapContext.AddOrGet <Source, Dest>(cfg); map.ForMember(settings.DestPropertyName, opt => opt.MapFrom(mappingFunction)); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuPropertyMappingSettings"); } }
public AddedMapContext CreateMap <Source, Dest>(MapperConfigurationExpression cfg, YuzuMapperSettings baseSettings, IFactory factory, AddedMapContext mapContext, IYuzuConfiguration config) { var settings = baseSettings as YuzuGlobalMapperSettings; if (settings != null) { if (settings.GroupName != null) { cfg.RecognizePrefixes(settings.GroupName); } mapContext.AddOrGet <Source, Dest>(cfg); return(mapContext); } else { throw new Exception("Mapping settings not of type YuzuGlobalMapperSettings"); } }