Exemple #1
0
        public IEnumerable <TService> GetServices <TService>(IFlashMapperDependencyResolver currentInstnace)
            where TService : class
        {
            var serviceType = typeof(TService);
            List <Func <IFlashMapperDependencyResolver, object> > typeServiceResolvers;

            if (serviceResolvers.TryGetValue(serviceType, out typeServiceResolvers))
            {
                foreach (var typeServiceResolver in typeServiceResolvers)
                {
                    yield return((TService)typeServiceResolver(currentInstnace));
                }
            }
            var typeCustomServices = customServices.OfType <TService>();

            foreach (var customService in typeCustomServices)
            {
                yield return(customService);
            }


            if (internalConfiguration != null)
            {
                var internalServices = internalConfiguration.GetServices <TService>(currentInstnace);
                foreach (var internalService in internalServices)
                {
                    yield return(internalService);
                }
            }
        }
 public FlashMapperMappingConfigurator(IFlashMapperDependencyResolver internalDependencyResolver)
 {
     this.unresolvedPropertyBehavior    = UnresolvedPropertyBehavior.Inherit;
     this.selectSourceCollisionBehavior = SelectSourceCollisionBehavior.Inherit;
     this.sourceNamingConvention        = null;
     this.destinationNamingConvention   = null;
     this.afterMapCallback  = null;
     this.beforeMapCallback = null;
     dependencyResolver     = new FlashMapperDependencyResolver(internalDependencyResolver, Enumerable.Empty <IFlashMapperService>());
 }
Exemple #3
0
        private IFlashMapperSettings ResolveCustomSettings(Func <IFlashMapperSettingsBuilder, IFlashMapperSettingsBuilder> settings,
                                                           IFlashMapperDependencyResolver resolver)
        {
            var settingsBuilder            = resolver.GetService <IFlashMapperSettingsBuilderFactory>().GetBuilder();
            var customSettings             = settings(settingsBuilder).GetSettings();
            var defaultFlashMapperSettings = resolver.GetService <IFlashMapperSettings>();
            var mappingSettings            = resolver.GetService <IFlashMapperSettingsExtender>()
                                             .Extend(defaultFlashMapperSettings, customSettings);

            return(mappingSettings);
        }
Exemple #4
0
        public MappingConfiguration(IEnumerable <IFlashMapperService> customServices)
        {
            var customServicesArray = customServices.ToArray();

            this.customServices = customServicesArray;
            InstanceId          = Guid.NewGuid();

            dependencyResolver = customServicesArray.Length > 0
                ? new FlashMapperDependencyResolver(ModuleConfiguration.GetDefaultResolver(), customServicesArray)
                : ModuleConfiguration.GetDefaultResolver();

            mappingsStorage         = dependencyResolver.GetService <IMappingsStorageFactory>().Create(this);
            dependantConfigurations = new List <IMappingConfiguration>();
        }
Exemple #5
0
        private IMappingConfiguration CreateMapping <TSource, TDestination>(Expression <Func <TSource, TDestination> > mappingExpression, IFlashMapperDependencyResolver resolver, IFlashMapperMappingCallbacks <TSource, TDestination> callbacks)
        {
            var mappingGenerator = resolver.GetService <IMappingGenerator>();
            var mapping          = mappingGenerator.GenerateCompleteMapping(mappingExpression, callbacks);

            mappingsStorage.SetMapping(mapping);
            return(this);
        }
 public FlashMapperCustomServiceBuilderFactory(IFlashMapperDependencyResolver dependencyResolver)
 {
     this.dependencyResolver = dependencyResolver;
 }
Exemple #7
0
 public FlashMapperDependencyResolver(IFlashMapperDependencyResolver internalConfiguration, IEnumerable <IFlashMapperService> customServices)
 {
     this.customServices        = customServices.ToList();
     serviceResolvers           = new Dictionary <Type, List <Func <IFlashMapperDependencyResolver, object> > >();
     this.internalConfiguration = internalConfiguration;
 }
Exemple #8
0
 public FlashMapperCustomServiceBuilder(IFlashMapperDependencyResolver internalDependencyResolver)
 {
     dependencyResolver = new FlashMapperDependencyResolver(internalDependencyResolver, Enumerable.Empty <IFlashMapperService>());
 }