Beispiel #1
0
        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()
                    ));
            });
        }
Beispiel #2
0
        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);
        }