public MainWindow()
        {
            InitializeComponent();

            // IoC Layer would handle all of this
            var betDataProviderFactory = new BetDataProviderFactory();
            var betDataProviderConfigReader = new BetDataProviderConfigReader(betDataProviderFactory);
            var betDataProviders =  betDataProviderConfigReader.CreateBetDataProvidersFromConfig();

            var betDataCacheFactory = new BetDataCacheFactory();
            var betDataCache = betDataCacheFactory.CreateInMemoryBetDataCache();

            _betDataProviderManager = new BetDataProviderManager(betDataProviders, betDataCache);

            _mainWindowViewModel = new MainWindowViewModel(betDataCache);
            DataContext = _mainWindowViewModel;
        }
 public BetDataProviderConfigReader(BetDataProviderFactory betDataProviderFactory)
 {
     _betDataProviderFactory = betDataProviderFactory;
 }