示例#1
0
        public CaliburnShellViewModel(IParseOptions optionsParser, IEnumerable <ICommandViewModel> commandViewModels)
        {
            Task.Run(() =>
            {
                var args = Environment.GetCommandLineArgs();
                try
                {
                    //                    if (args.Length <= 1)
                    //                    {
                    //                        args = new[]
                    //                        {
                    //                            "appget://install/vlc",
                    ////                            "appget://install/visual-studio-code"
                    //                        };
                    //                    }

                    var option = optionsParser.Parse(args.Last());

                    AppSession.Options = option;

                    var viewModel = commandViewModels.First(c => c.CanHandle(option));
                    ActivateItem(viewModel);
                }
                catch (CommandLineParserException)
                {
                    Process.Start("https://appget.net/packages");
                    Environment.Exit(1);
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    Environment.Exit(1);
                }
            });
        }
示例#2
0
 public CommandExecutor(KeyValuePair<Type, Lazy<ICommandHandler>>[] handlers, IParseOptions optionParser, Logger logger)
 {
     _handlers = handlers;
     _optionParser = optionParser;
     _logger = logger;
 }