new static void Main(string[] args) { AppBase.Program <AppSettings> .Main(args); Reload.Execute(ref AppSettings); while (true) { Console.Write("> "); var input = Console.ReadLine(); var arg = input.Contains(" ") ? new string[] { input.Substring(0, input.IndexOf(" ")), input.Substring(input.IndexOf(" ") + 1) } : new string[] { input }; Parser.Default .ParseArguments <Login, CreateQuery, UpdateQuery, InsertQuery, DeleteQuery, Print, Reload, Exit>(arg) .MapResult( (Login opts) => Login.Execute(ref AppSettings, ref Generator, opts), (CreateQuery opts) => new CreateQuery().Execute(ref AppSettings, ref Generator, opts), (UpdateQuery opts) => new UpdateQuery().Execute(ref AppSettings, ref Generator, opts), (InsertQuery opts) => new InsertQuery().Execute(ref AppSettings, ref Generator, opts), (DeleteQuery opts) => new DeleteQuery().Execute(ref AppSettings, ref Generator, opts), (Print opts) => Print.Execute(ref AppSettings, opts), (Reload opts) => Reload.Execute(ref AppSettings, opts), (Exit opts) => Exit.Execute(opts), errs => 1); if (arg.Length == 1 && arg[0] == "exit") { break; } } Exit.Execute(); }
new static void Main(string[] args) { AppBase.Program <AppSettings> .Main(args); Reload.Execute(ref AppSettings); while (true) { Console.Write("> "); var arg = Console.ReadLine().Split(' '); Parser.Default .ParseArguments <Exit, Login, Run, Reload, Print>(arg) .MapResult( (Login opts) => Login.Execute(ref AppSettings, ref Updater, opts), (Run opts) => Run.Execute(ref AppSettings, ref Updater, opts), (Reload opts) => Reload.Execute(ref AppSettings, opts), (Print opts) => Print.Execute(ref AppSettings, opts), (Exit opts) => Exit.Execute(opts), errs => 1); if (arg.Length == 1 && arg[0] == "exit") { break; } } Exit.Execute(); }
private void Reload() { var command = new Reload(); var context = GetContext(); if (!command.CanExecute(context)) { return; } AppHost.Usage.ReportCommand(command, context); command.Execute(context); }