Esempio n. 1
0
 public Facade(
     ISqlConnectionFactory connectionFactory,
     ISqlConnectionFactory usersConnectionFactory,
     IDataManagerFactory dataManagerFactory,
     IUsersDataManagerFactory dataUsersManagerFactory,
     RepositoryManager repositoryManager,
     ManagingBpt.ModelManager bptManager,
     ExpressionPicker expressionPicker,
     CommonParts commonParts,
     PstManager pstManager,
     BasketManager basketManager,
     ProtfolioPickerManager protfolioPickerManager,
     Gadgets.BasketPicker.ModelManager basketPickerManager,
     ManagingBpst.ModelManager bpstModelManager,
     ManagingPortfolios.PortfolioManager portfolioManager,
     ManagingCalculations.Hopper hopper,
     ManagingComments.CommentManager commentsManager
     )
 {
     this.usersConnectionFactory  = usersConnectionFactory;
     this.connectionFactory       = connectionFactory;
     this.dataManagerFactory      = dataManagerFactory;
     this.dataUsersManagerFactory = dataUsersManagerFactory;
     this.RepositoryManager       = repositoryManager;
     this.BptManager              = bptManager;
     this.ExpressionPicker        = expressionPicker;
     this.CommonParts             = commonParts;
     this.PstManager              = pstManager;
     this.BasketManager           = basketManager;
     this.PortfiolioPickerManager = protfolioPickerManager;
     this.BasketPickerManager     = basketPickerManager;
     this.BpstManager             = bpstModelManager;
     this.PortfolioManager        = portfolioManager;
     this.hopper         = hopper;
     this.commentManager = commentsManager;
 }
Esempio n. 2
0
        public static Facade CreateFacade(String connectionString)
        {
            var infoCopier = new InfoCopier();
            var countryRepositoryStorage = new InMemoryStorage <CountryRepository>();
            var countrySerializer        = new CountryToJsonSerializer();
            var countryManager           = new CountryManager(countryRepositoryStorage);
            var basketRenderer           = new BasketRenderer();
            var securityRepositoryCache  = new InMemoryStorage <SecurityRepository>();
            var calculationRequester     = new CalculationRequester();
            var monitor            = new Monitor();
            var securitySerializer = new SecurityToJsonSerializer(countrySerializer);
            var securityManager    = new SecurityManager(securityRepositoryCache, monitor);

            IDataManagerFactory dataManagerFactory = new FakeDataManagerFactory();
            var connectionFactory        = new SqlConnectionFactory(connectionString);
            var portfolioRepositoryCache = new InMemoryStorage <PortfolioRepository>();
            var portfolioSerialzer       = new TopDown.Core.ManagingPortfolios.PortfolioToJsonSerializer(securitySerializer);
            var portfolioManager         = new TopDown.Core.ManagingPortfolios.PortfolioManager(
                portfolioRepositoryCache,
                portfolioSerialzer
                );

            var targetingTypeManager = new TargetingTypeManager(
                new TopDown.Core.ManagingTargetingTypes.InfoDeserializer(),
                new InMemoryStorage <TargetingTypeRepository>(),
                new InMemoryStorage <TargetingTypeGroupRepository>()
                );
            var taxonomyManager = new TaxonomyManager(
                new InMemoryStorage <TaxonomyRepository>(),
                new TopDown.Core.ManagingTaxonomies.InfoDeserializer(
                    new TopDown.Core.ManagingTaxonomies.XmlDeserializer()
                    )
                );

            var basketRepositoryStorage = new InMemoryStorage <BasketRepository>();
            var basketManager           = new BasketManager(
                basketRepositoryStorage,
                new TopDown.Core.ManagingBaskets.XmlDeserializer(),
                new BasketSecurityRelationshipInvestigator()
                );


            var benchmarkRepositoryStorage = new InMemoryStorage <BenchmarkRepository>();
            var benchmarkManager           = new BenchmarkManager(benchmarkRepositoryStorage);

            var portfolioSecurityTargetRepositoryCache   = new InMemoryStorage <TopDown.Core.ManagingPst.PortfolioSecurityTargetRepository>();
            var portfolioSecurityTargetRepositoryManager = new TopDown.Core.ManagingPst.RepositoryManager(
                infoCopier,
                portfolioSecurityTargetRepositoryCache
                );

            var bpstCache   = new InMemoryStorage <TopDown.Core.ManagingBpst.BasketSecurityPortfolioTargetRepository>();
            var bpstManager = new TopDown.Core.ManagingBpst.BasketSecurityPortfolioTargetRepositoryManager(bpstCache);

            var ttgbsbvrCache   = new InMemoryStorage <TopDown.Core.ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepository>();
            var ttgbsbvrManager = new TopDown.Core.ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepositoryManager(ttgbsbvrCache);

            var issuerRepositoryStorage = new InMemoryStorage <IssuerRepository>();
            var issuerManager           = new IssuerManager(monitor, issuerRepositoryStorage);


            var repositoryManager = new TopDown.Core.RepositoryManager(
                monitor,
                basketManager,
                targetingTypeManager,
                countryManager,
                taxonomyManager,
                securityManager,
                portfolioManager,
                benchmarkManager,
                portfolioSecurityTargetRepositoryManager,
                bpstManager,
                ttgbsbvrManager,
                issuerManager
                );

            repositoryManager.DropEverything();

            var validationSerializer   = new TopDown.Core.ValidationIssueToJsonSerializer();
            var expressionSerializer   = new ExpressionToJsonSerializer(validationSerializer);
            var expressionDeserializer = new ExpressionFromJsonDeserializer();
            var defaultBreakdownValues = TopDown.Core.ManagingBpt.DefaultValues.CreateDefaultValues();
            var picker              = new ExpressionPicker();
            var commonParts         = new CommonParts();
            var overlayModelBuilder = new TopDown.Core.Overlaying.ModelBuilder(null, commonParts);
            var overlayManager      = new OverlayManager(overlayModelBuilder);
            var bptModelBuilder     = new TopDown.Core.ManagingBpt.ModelBuilder(
                picker,
                commonParts,
                defaultBreakdownValues,
                overlayModelBuilder
                );

            var globeTraverser             = new GlobeTraverser();
            var taxonomyTraverser          = new TaxonomyTraverser();
            var taxonomyToModelTransformer = new TaxonomyToModelTransformer(picker, bptModelBuilder, globeTraverser);
            var countriesDetector          = new MissingCountriesDetector(
                new UnknownCountryIsoCodesDetector(),
                new TopDown.Core.ManagingTaxonomies.CountryIsoCodesExtractor(taxonomyTraverser),
                new TopDown.Core.Overlaying.CombinedCountryIsoCodesExtractor(new TopDown.Core.Overlaying.CountryIsoCodesExtractor()),
                new TopDown.Core.ManagingBenchmarks.CountryIsoCodesExtractor()
                );
            var modelToTaxonomyTransformer = new ModelToTaxonomyTransformer();
            var bptModelApplier            = new TopDown.Core.ManagingBpt.ModelApplier(
                new TopDown.Core.ManagingBpt.ChangingBt.ChangesetApplier(dataManagerFactory, modelToTaxonomyTransformer),
                new TopDown.Core.ManagingBpt.ChangingBt.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ChangingPsto.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingPsto.ModelToChangesetTransformer(),
                new TopDown.Core.ManagingBpt.ChangingTtbbv.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingTtbbv.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ChangingTtbpt.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingTtbpt.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ModelValidator(globeTraverser),
                dataManagerFactory,
                calculationRequester
                );

            var targetsFlattener  = new TargetsFlattener(infoCopier);
            var bptChangeDetector = new TopDown.Core.ManagingBpt.ModelChangeDetector(
                new TopDown.Core.ManagingBpt.ModelExpressionTraverser(globeTraverser)
                );
            var bptManager = new TopDown.Core.ManagingBpt.ModelManager(
                globeTraverser,
                bptModelBuilder,
                taxonomyToModelTransformer,
                new BaseValueInitializer(globeTraverser),
                new BenchmarkValueInitializer(globeTraverser),
                new OverlayInitializer(globeTraverser, targetsFlattener),
                new PortfolioAdjustmentInitializer(globeTraverser),
                new TopDown.Core.ManagingBpt.ModelToJsonSerializer(expressionSerializer, portfolioSerialzer),
                new TopDown.Core.ManagingBpt.ModelFromJsonDeserializer(
                    picker,
                    bptModelBuilder,
                    globeTraverser,
                    expressionDeserializer
                    ),
                repositoryManager,
                overlayManager,
                countriesDetector,
                bptModelApplier,
                bptChangeDetector
                );

            var pstModelToChangeMapper = new TopDown.Core.ManagingPst.ModelToChangesetTransformer();
            var pstChangeApplier       = new TopDown.Core.ManagingPst.ChangesetApplier();
            var pstModelBuilder        = new TopDown.Core.ManagingPst.ModelBuilder(null, commonParts);
            var pstModelValidator      = new TopDown.Core.ManagingPst.ModelValidator();
            var pstManager             = new PstManager(
                pstChangeApplier,
                pstModelValidator,
                pstModelToChangeMapper,
                new TopDown.Core.ManagingPst.ModelFromJsonDeserializer(
                    pstModelBuilder,
                    expressionDeserializer
                    ),
                pstModelBuilder,
                portfolioSecurityTargetRepositoryManager,
                new TopDown.Core.ManagingPst.ModelChangeDetector(
                    new TopDown.Core.ManagingPst.ModelExpressionTraverser()
                    ),
                dataManagerFactory,
                calculationRequester,
                new TopDown.Core.ManagingPst.ModelToJsonSerializer(expressionSerializer, securitySerializer)
                );


            var portfiolioPickerManager = new ProtfolioPickerManager(
                new TopDown.Core.Gadgets.PortfolioPicker.ModelToJsonSerializer()
                );

            var basketPickerManager = new TopDown.Core.Gadgets.BasketPicker.ModelManager(
                new TopDown.Core.Gadgets.BasketPicker.ModelBuilder(
                    new BasketExtractor(taxonomyTraverser),
                    new BasketRenderer()
                    ),
                new TopDown.Core.Gadgets.BasketPicker.ModelToJsonSerializer()
                );

            var bpstModelBuilder = new TopDown.Core.ManagingBpst.ModelBuilder(
                TopDown.Core.ManagingBpst.DefaultValues.CreateDefaultValues(),
                commonParts
                );
            var bpstBenchmarkInitializer = new TopDown.Core.ManagingBpst.BenchmarkInitializer();
            var bpstModelValidator       = new TopDown.Core.ManagingBpst.ModelValidator();
            var bpstModelManager         = new TopDown.Core.ManagingBpst.ModelManager(
                new TopDown.Core.ManagingBpst.ModelToJsonSerializer(expressionSerializer, securitySerializer),
                bpstModelBuilder,
                new TopDown.Core.ManagingBpst.ModelFromJsonDeserializer(
                    expressionDeserializer,
                    bpstModelBuilder,
                    bpstBenchmarkInitializer
                    ),
                new TopDown.Core.ManagingBpst.ModelApplier(
                    dataManagerFactory,
                    new TopDown.Core.ManagingBpst.ChangingTtgbsbv.ChangesetApplier(),
                    new TopDown.Core.ManagingBpst.ChangingTtgbsbv.ModelToChangesetTransformer(),
                    new TopDown.Core.ManagingBpst.ChangingBpst.PortfolioTargetChangesetApplier(),
                    new TopDown.Core.ManagingBpst.ChangingBpst.ModelToChangesetTransformter(),
                    calculationRequester,
                    bpstModelValidator,
                    repositoryManager
                    ),
                bpstModelValidator,
                bpstBenchmarkInitializer,
                new TopDown.Core.ManagingBpst.ModelChangeDetector(new TopDown.Core.ManagingBpst.ModelExpressionTraverser()),
                repositoryManager
                );

            var validationManager = new ValidationManager(validationSerializer);

            var hopper = new TopDown.Core.ManagingCalculations.Hopper(
                repositoryManager,
                bptManager,
                bpstModelManager,
                basketRenderer
                );

            //var fileManager = new TopDown.Core.ManagingCalculations.TradingTargetsFileManager(repositoryManager, dataManagerFactory, connectionFactory);

            var commentManager = new Core.ManagingComments.CommentManager();

            var facade = new Facade(
                connectionFactory,
                dataManagerFactory,
                repositoryManager,
                bptManager,
                picker,
                commonParts,
                pstManager,
                basketManager,
                portfiolioPickerManager,
                basketPickerManager,
                bpstModelManager,
                portfolioManager,
                hopper,
                commentManager
                );

            return(facade);
        }
        private static GreenField.Targeting.Server.FacadeSettings CreateFacadeSettingsUnsafe(String connectionString, String usersConnectionString, Boolean shouldDropRepositories)
        {
            var infoCopier = new InfoCopier();
            var cache      = MemoryCache.Default;
            var countryRepositoryStorage = new CacheStorage <CountryRepository>(cache);
            var countrySerializer        = new CountryToJsonSerializer();
            var countryManager           = new CountryManager(countryRepositoryStorage);
            var basketRenderer           = new BasketRenderer();
            var securityRepositoryCache  = new CacheStorage <SecurityRepository>(cache);
            var calculationRequester     = new CalculationRequester();
            var monitor            = new Monitor();
            var securitySerializer = new SecurityToJsonSerializer(countrySerializer);
            var securityManager    = new SecurityManager(securityRepositoryCache, monitor);

            IDataManagerFactory      dataManagerFactory      = new DataManagerFactory();
            IUsersDataManagerFactory usersDataManagerFactory = new UsersDataManagerFactory();
            var connectionFactory        = new SqlConnectionFactory(connectionString);
            var usersConnectionFactory   = new SqlConnectionFactory(usersConnectionString);
            var portfolioRepositoryCache = new CacheStorage <PortfolioRepository>(cache);
            var portfolioSerialzer       = new TopDown.Core.ManagingPortfolios.PortfolioToJsonSerializer(securitySerializer);
            var portfolioManager         = new TopDown.Core.ManagingPortfolios.PortfolioManager(
                portfolioRepositoryCache,
                portfolioSerialzer
                );

            var targetingTypeManager = new TargetingTypeManager(
                new TopDown.Core.ManagingTargetingTypes.InfoDeserializer(),
                new CacheStorage <TargetingTypeRepository>(cache),
                new CacheStorage <TargetingTypeGroupRepository>(cache)
                );
            var taxonomyManager = new TaxonomyManager(
                new CacheStorage <TaxonomyRepository>(cache),
                new TopDown.Core.ManagingTaxonomies.InfoDeserializer(
                    new TopDown.Core.ManagingTaxonomies.XmlDeserializer()
                    )
                );

            var basketRepositoryStorage = new CacheStorage <BasketRepository>(cache);
            var basketManager           = new BasketManager(
                basketRepositoryStorage,
                new TopDown.Core.ManagingBaskets.XmlDeserializer(),
                new BasketSecurityRelationshipInvestigator()
                );


            var benchmarkRepositoryStorage = new CacheStorage <BenchmarkRepository>(cache);
            var benchmarkManager           = new BenchmarkManager(benchmarkRepositoryStorage);

            var portfolioSecurityTargetRepositoryCache   = new CacheStorage <TopDown.Core.ManagingPst.PortfolioSecurityTargetRepository>(cache);
            var portfolioSecurityTargetRepositoryManager = new TopDown.Core.ManagingPst.RepositoryManager(
                infoCopier,
                portfolioSecurityTargetRepositoryCache
                );

            var bpstCache   = new CacheStorage <TopDown.Core.ManagingBpst.BasketSecurityPortfolioTargetRepository>(cache);
            var bpstManager = new TopDown.Core.ManagingBpst.BasketSecurityPortfolioTargetRepositoryManager(bpstCache);

            var ttgbsbvrCache   = new CacheStorage <TopDown.Core.ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepository>(cache);
            var ttgbsbvrManager = new TopDown.Core.ManagingBpst.TargetingTypeGroupBasketSecurityBaseValueRepositoryManager(ttgbsbvrCache);

            var issuerRepositoryStorage = new CacheStorage <IssuerRepository>(cache);
            var issuerManager           = new IssuerManager(monitor, issuerRepositoryStorage);

            var repositoryManager = new TopDown.Core.RepositoryManager(
                monitor,
                basketManager,
                targetingTypeManager,
                countryManager,
                taxonomyManager,
                securityManager,
                portfolioManager,
                benchmarkManager,
                portfolioSecurityTargetRepositoryManager,
                bpstManager,
                ttgbsbvrManager,
                issuerManager
                );

            if (shouldDropRepositories)
            {
                repositoryManager.DropEverything();
            }

            var validationSerializer   = new TopDown.Core.ValidationIssueToJsonSerializer();
            var expressionSerializer   = new ExpressionToJsonSerializer(validationSerializer);
            var expressionDeserializer = new ExpressionFromJsonDeserializer();
            var defaultBreakdownValues = TopDown.Core.ManagingBpt.DefaultValues.CreateDefaultValues();
            var picker              = new ExpressionPicker();
            var commonParts         = new CommonParts();
            var overlayModelBuilder = new TopDown.Core.Overlaying.ModelBuilder(null, commonParts);
            var overlayManager      = new OverlayManager(overlayModelBuilder);
            var bptModelBuilder     = new TopDown.Core.ManagingBpt.ModelBuilder(
                picker,
                commonParts,
                defaultBreakdownValues,
                overlayModelBuilder
                );

            var globeTraverser             = new GlobeTraverser();
            var taxonomyTraverser          = new TaxonomyTraverser();
            var taxonomyToModelTransformer = new TaxonomyToModelTransformer(picker, bptModelBuilder, globeTraverser);
            var countriesDetector          = new MissingCountriesDetector(
                new UnknownCountryIsoCodesDetector(),
                new TopDown.Core.ManagingTaxonomies.CountryIsoCodesExtractor(taxonomyTraverser),
                new TopDown.Core.Overlaying.CombinedCountryIsoCodesExtractor(new TopDown.Core.Overlaying.CountryIsoCodesExtractor()),
                new TopDown.Core.ManagingBenchmarks.CountryIsoCodesExtractor()
                );
            var modelToTaxonomyTransformer = new ModelToTaxonomyTransformer();
            var bptModelApplier            = new TopDown.Core.ManagingBpt.ModelApplier(
                new TopDown.Core.ManagingBpt.ChangingBt.ChangesetApplier(dataManagerFactory, modelToTaxonomyTransformer),
                new TopDown.Core.ManagingBpt.ChangingBt.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ChangingPsto.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingPsto.ModelToChangesetTransformer(),
                new TopDown.Core.ManagingBpt.ChangingTtbbv.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingTtbbv.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ChangingTtbpt.ChangesetApplier(),
                new TopDown.Core.ManagingBpt.ChangingTtbpt.ModelToChangesetTransformer(globeTraverser),
                new TopDown.Core.ManagingBpt.ModelValidator(globeTraverser),
                dataManagerFactory,
                calculationRequester
                );

            var targetsFlattener  = new TargetsFlattener(infoCopier);
            var bptChangeDetector = new TopDown.Core.ManagingBpt.ModelChangeDetector(
                new TopDown.Core.ManagingBpt.ModelExpressionTraverser(globeTraverser)
                );
            var bptManager = new TopDown.Core.ManagingBpt.ModelManager(
                globeTraverser,
                bptModelBuilder,
                taxonomyToModelTransformer,
                new BaseValueInitializer(globeTraverser),
                new BenchmarkValueInitializer(globeTraverser),
                new OverlayInitializer(globeTraverser, targetsFlattener),
                new PortfolioAdjustmentInitializer(globeTraverser),
                new TopDown.Core.ManagingBpt.ModelToJsonSerializer(expressionSerializer, portfolioSerialzer),
                new TopDown.Core.ManagingBpt.ModelFromJsonDeserializer(
                    picker,
                    bptModelBuilder,
                    globeTraverser,
                    expressionDeserializer
                    ),
                repositoryManager,
                overlayManager,
                countriesDetector,
                bptModelApplier,
                bptChangeDetector
                );

            var pstModelToChangeMapper = new TopDown.Core.ManagingPst.ModelToChangesetTransformer();
            var pstChangeApplier       = new TopDown.Core.ManagingPst.ChangesetApplier();
            var pstModelBuilder        = new TopDown.Core.ManagingPst.ModelBuilder(null, commonParts);
            var pstModelChangeDetector = new TopDown.Core.ManagingPst.ModelChangeDetector(
                new TopDown.Core.ManagingPst.ModelExpressionTraverser()
                );
            var pstModelValidator = new TopDown.Core.ManagingPst.ModelValidator();
            var pstManager        = new PstManager(
                pstChangeApplier,
                pstModelValidator,
                pstModelToChangeMapper,
                new TopDown.Core.ManagingPst.ModelFromJsonDeserializer(
                    pstModelBuilder,
                    expressionDeserializer
                    ),
                pstModelBuilder,
                portfolioSecurityTargetRepositoryManager,
                pstModelChangeDetector,
                dataManagerFactory,
                calculationRequester,
                new TopDown.Core.ManagingPst.ModelToJsonSerializer(expressionSerializer, securitySerializer)
                );


            var portfiolioPickerManager = new ProtfolioPickerManager(
                new TopDown.Core.Gadgets.PortfolioPicker.ModelToJsonSerializer()
                );

            var basketPickerManager = new TopDown.Core.Gadgets.BasketPicker.ModelManager(
                new TopDown.Core.Gadgets.BasketPicker.ModelBuilder(
                    new BasketExtractor(taxonomyTraverser),
                    new BasketRenderer()
                    ),
                new TopDown.Core.Gadgets.BasketPicker.ModelToJsonSerializer()
                );

            var bpstModelBuilder = new TopDown.Core.ManagingBpst.ModelBuilder(
                TopDown.Core.ManagingBpst.DefaultValues.CreateDefaultValues(),
                commonParts
                );
            var bpstBenchmarkInitializer = new TopDown.Core.ManagingBpst.BenchmarkInitializer();
            var bpstModelValidator       = new TopDown.Core.ManagingBpst.ModelValidator();
            var bpstModelChangeDetector  = new TopDown.Core.ManagingBpst.ModelChangeDetector(new TopDown.Core.ManagingBpst.ModelExpressionTraverser());
            var bpstModelManager         = new TopDown.Core.ManagingBpst.ModelManager(
                new TopDown.Core.ManagingBpst.ModelToJsonSerializer(expressionSerializer, securitySerializer),
                bpstModelBuilder,
                new TopDown.Core.ManagingBpst.ModelFromJsonDeserializer(
                    expressionDeserializer,
                    bpstModelBuilder,
                    bpstBenchmarkInitializer
                    ),
                new TopDown.Core.ManagingBpst.ModelApplier(
                    dataManagerFactory,
                    new TopDown.Core.ManagingBpst.ChangingTtgbsbv.ChangesetApplier(),
                    new TopDown.Core.ManagingBpst.ChangingTtgbsbv.ModelToChangesetTransformer(),
                    new TopDown.Core.ManagingBpst.ChangingBpst.PortfolioTargetChangesetApplier(),
                    new TopDown.Core.ManagingBpst.ChangingBpst.ModelToChangesetTransformter(),
                    calculationRequester,
                    bpstModelValidator,
                    repositoryManager
                    ),
                bpstModelValidator,
                bpstBenchmarkInitializer,
                bpstModelChangeDetector,
                repositoryManager
                );

            var validationManager = new ValidationManager(validationSerializer);

            var hopper = new TopDown.Core.ManagingCalculations.Hopper(
                repositoryManager,
                bptManager,
                bpstModelManager,
                basketRenderer
                );

            var commentManager = new TopDown.Core.ManagingComments.CommentManager();
            var facade         = new Facade(
                connectionFactory,
                usersConnectionFactory,
                dataManagerFactory,
                usersDataManagerFactory,
                repositoryManager,
                bptManager,
                picker,
                commonParts,
                pstManager,
                basketManager,
                portfiolioPickerManager,
                basketPickerManager,
                bpstModelManager,
                portfolioManager,
                hopper,
                commentManager
                );


            var serializer    = new Server.Serializer();
            var bgaSerializer = new GreenField.Targeting.Server.BroadGlobalActive.Serializer(
                serializer,
                bptChangeDetector
                );

            var deserializer    = new Server.Deserializer(connectionFactory, dataManagerFactory, repositoryManager);
            var bgaDeserializer = new GreenField.Targeting.Server.BroadGlobalActive.Deserializer(
                deserializer,
                bptModelBuilder,
                globeTraverser
                );

            var btSerializer   = new GreenField.Targeting.Server.BasketTargets.Serializer(serializer, bpstModelChangeDetector);
            var btDeserializer = new GreenField.Targeting.Server.BasketTargets.Deserializer(deserializer, bpstModelBuilder, bpstBenchmarkInitializer);


            var buSerializer   = new GreenField.Targeting.Server.BottomUp.Serializer(serializer, pstModelChangeDetector);
            var buDeserializer = new GreenField.Targeting.Server.BottomUp.Deserializer(deserializer, pstModelBuilder);

            var result = new GreenField.Targeting.Server.FacadeSettings(
                facade,
                serializer,
                bgaSerializer,
                bgaDeserializer,
                btSerializer,
                btDeserializer,
                buSerializer,
                buDeserializer,
                ConfigurationSettings.ShouldDropRepositoriesOnEachReload
                );

            return(result);
        }