public void Execute(string commandName, Argument[] args) { ExecuteCommandHandler(commandName, commandInstance => { var argumentType = TypeUtils.ExtractArgumentTypesFromCommand(commandInstance).First(); var argumentInstance = _mapper.Map(argumentType, args); _commandExecutor.Execute(commandInstance, argumentInstance); _history.AddLast(new HistoryEntry( commandName: string.IsNullOrWhiteSpace(commandName) ? "help" : commandName, implementationType: commandInstance.GetType() )); }); }
public void Execute(string[] input) { var commandName = ""; var argumentValues = new Argument[0]; if (input != null) { commandName = input.FirstOrDefault(); var args = string.Join( separator: " ", values: input .Skip(1) .Select(x => { if (x.StartsWith("-")) { return x; } return string.Format("\"{0}\"", x); }) ); argumentValues = _commandLineParser .ParseArguments(args) .ToArray(); } Execute(commandName, argumentValues); }