Exemple #1
0
        public async Task TestCanExecute()
        {
            Assert.IsTrue(_command.CanExecute(null), "CanExecute gibt nicht true zurück!");
            // Command ausführen, sollte SLEEPTIME ms laufen, währenddessen muss CanExecute false zurückgeben
            _command.Execute(null);
            await Task.Run(() => Thread.Sleep(100));

            Assert.IsFalse(_command.CanExecute(null), "CanExecute sollte während der Ausführung false sein!");
            await Task.Run(() => Thread.Sleep(SLEEPTIME));

            // CanExecute sollte wieder true zurückgeben, da sicher fertig
            Assert.IsTrue(_command.CanExecute(null), "CanExecute gibt nicht true zurück!");
        }
        public DirectorySelectionViewModel()
        {
            _musicConverter = new MusicLibraryConverter();

            //TODO: MUST include directory validation in all these "CanExecute" commands.
            //For now, we enable/disable buttons based on whether the conversion command is executing or not.

            StartConversionCommand  = new AwaitableDelegateCommand(StartConversion_Async);
            CancelConversionCommand = new DelegateCommand(CancelConversion, () => !StartConversionCommand.CanExecute(null));

            ChooseSourceCommand = new DelegateCommand(ChooseSource, () => StartConversionCommand.CanExecute(null));
            ChooseTargetCommand = new DelegateCommand(ChooseTarget, () => StartConversionCommand.CanExecute(null));

            CloseApplicationCommand = new DelegateCommand(() => Application.Current.MainWindow.Close());
            StartOverCommand        = new DelegateCommand(StartApplicationOver);

            CurrentApplicationState = ApplicationState.Starting;
        }