Пример #1
0
        public override bool CanExecute(object parameter)
        {
            IAppController controller = ServiceRegistration.Get <IAppController>(false);
            Window         mainWindow = Application.Current.MainWindow;

            if (mainWindow == null)
            {
                return(false);
            }

            Visibility visibility = mainWindow.Visibility;

            switch ((string)parameter)
            {
            case "DoubleClick": // DoubleClick of TrayIcon
                return(true);

            case "Open": // Open Main Window
                return(visibility != Visibility.Visible);

            case "Hide": // Close Main Window
                return(visibility == Visibility.Visible);

            case "Quit": // Quit Main Application
                return(true);

            case "Minimize": // Minimize to Tray
                return(visibility == Visibility.Visible);

            case "StartService": // Start the MP2-Server as Service
                return((controller != null) && (controller.IsServerServiceInstalled()) && (!controller.IsServerServiceRunning()));

            case "StopService": // Stop the MP2-Server Service
                return((controller != null) && (controller.IsServerServiceInstalled()) && (controller.IsServerServiceRunning()));

            case "EnableAutoStart":
                return((controller != null) && (!controller.IsAutoStartEnabled));

            case "DisableAutoStart":
                return((controller != null) && (controller.IsAutoStartEnabled));

            default:
                var msg = String.Format("ApplicationCommand fired with missing or invalid parameter: {0}", parameter);
                throw new InvalidOperationException(msg);
            }
        }