public ViewConductor(
     App app,
     SelectVocabularyViewModelFactory selectVocabularyViewModelFactory,
     QuestionViewModelFactory questionViewModelFactory)
 {
     _app = app;
     _selectVocabularyViewModelFactory = selectVocabularyViewModelFactory;
     _questionViewModelFactory         = questionViewModelFactory;
 }
        public ViewConductor(
            WindowManager windowManager,
            SelectVocabularyViewModelFactory selectVocabularyViewModelFactory,
            QuestionViewModelFactory questionViewModelFactory)
        {
            _windowManager = windowManager;
            _selectVocabularyViewModelFactory = selectVocabularyViewModelFactory;
            _questionViewModelFactory         = questionViewModelFactory;

            _questionViewModel = new Lazy <QuestionViewModel>(() => CreateQuestionViewModel());

            ViewModel = new MainViewModel();
        }
        private void OnStartup(object sender, StartupEventArgs e)
        {
            var mainWindow    = new MainWindow();
            var windowManager = new WindowManager(mainWindow);
            var selectVocabularyViewModelFactory = new SelectVocabularyViewModelFactory();
            var questionViewModelFactory         = new QuestionViewModelFactory();
            var viewConductor = new ViewConductor(windowManager, selectVocabularyViewModelFactory,
                                                  questionViewModelFactory);

            mainWindow.DataContext = viewConductor.ViewModel;
            mainWindow.Show();

            try
            {
                var vocabularyTextParser = new VocabularyTextParser();
                var vocabularyRepository = new FileVocabularyRepository(vocabularyTextParser);

                Bootstrapper.Startup.Run(viewConductor, vocabularyRepository);
            }
            catch (Exception exception)
            {
                windowManager.ShowMessage(exception.Message);
            }
        }