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); } }); }
public CommandExecutor(KeyValuePair<Type, Lazy<ICommandHandler>>[] handlers, IParseOptions optionParser, Logger logger) { _handlers = handlers; _optionParser = optionParser; _logger = logger; }