public SimulationTypeManager(ILogger logger,
                                     IAppConfigurationManager configurationManager,
                                     IDiagnosticManager diagnosticManager,
                                     IMarketDataManager marketDataManager,
                                     INotificationManager notificationManager,
                                     ICalendarRebalanceScheduleManager rebalanceScheduleManager)
        {
            _account             = configurationManager.GetAccount();
            _logger              = logger;
            _diagnosticManager   = diagnosticManager;
            _notificationManager = notificationManager;
            _marketDataManager   = marketDataManager;
            _calendarRebalanceScheduleManager = rebalanceScheduleManager;

            var containerBuilder = new ContainerBuilder();

            containerBuilder.Register <IDiagnosticManager>(x => _diagnosticManager).SingleInstance();
            containerBuilder.Register <IMarketDataManager>(x => _marketDataManager).SingleInstance();
            containerBuilder.Register <INotificationManager>(x => _notificationManager).SingleInstance();
            containerBuilder.Register <ICalendarRebalanceScheduleManager>(x => _calendarRebalanceScheduleManager).SingleInstance();
            containerBuilder.Register <IAppConfigurationManager>(x => configurationManager).SingleInstance();
            containerBuilder.Register <ILogger>(x => _logger).SingleInstance();

            containerBuilder.RegisterType <RebalanceSimulationManager>().As <ISimulationManager, IRebalanceSimulationManager>().SingleInstance();
            containerBuilder.RegisterType <BuyAndHoldSimulationManager>().As <ISimulationManager, IBuyAndHoldSimulationManager>().SingleInstance();

            _container = containerBuilder.Build();
        }
Example #2
0
        public RebalanceSimulationManager(ILogger logger,
                                          IAppConfigurationManager configurationManager,
                                          IDiagnosticManager diagnosticManager,
                                          IMarketDataManager marketDataManager,
                                          INotificationManager notificationManager,
                                          ICalendarRebalanceScheduleManager rebalanceScheduleManager)
        {
            _calendarRebalanceScheduleManager = rebalanceScheduleManager;
            _diagnosticManager   = diagnosticManager;
            _marketDataManager   = marketDataManager;
            _account             = configurationManager.GetAccount();
            _notificationManager = notificationManager;
            _logger = logger;

            _notificationManager.SimulationEnded += NotificationManager_SimulationEnded;
        }