public override int Eval(string input) { if (string.IsNullOrWhiteSpace(input.Trim()) || input.Trim().Equals("status")) { bool first = true; foreach (var kvp in CommandsByName) { if (kvp.Key != HelpCommand.kCommandName) { if (first) { first = false; } else { Console.WriteLine(); } Console.WriteLine("service \"{0}\" status:".F(kvp.Key)); kvp.Value.Eval("status"); } } return(0); } else if (input.Trim().Equals("list")) { new ListView(CommandsByName.Select(kvp => kvp.Key).Where(k => k != HelpCommand.kCommandName)).PrintToConsole(); return(0); } else { return(base.Eval(input)); } }
public IScriptCommand Create(string name) { if (name == null || !CommandsByName.TryGetValue(name, out var command)) { throw new ArgumentException($"Unknown command name: {name} !"); } var obj = (IScriptCommand)Activator.CreateInstance(command.Type); return(obj); }