예제 #1
0
        private static ProcessedArguments ProcessArgs(IReadOnlyList <string> args)
        {
            var processedArguments = new ProcessedArguments();
            var argsStart          = 2;

            if (args.Count == 0)
            {
                return(processedArguments);
            }

            processedArguments.IsHelpCall = args[args.Count - 1] == Settings.HelpString;
            processedArguments.Controller = TryGetArg(args, 0);
            processedArguments.Command    = TryGetArg(args, 1);

            if (processedArguments.Command?.StartsWith(Settings.ArgumentPrefix) == true)
            {
                argsStart = 1;
                processedArguments.Command = null;
            }

            if (args.Count > argsStart && !processedArguments.IsHelpCall)
            {
                var argsList = args.ToList();
                argsList.RemoveRange(0, argsStart);
                processedArguments.Arguments = SetArguments(argsList).ToList();
            }

            return(processedArguments);
        }
예제 #2
0
        public void ProcessArgs_RetrunsNewProcessedArguments_WhenPassedEmptyArgs()
        {
            var args     = new List <string>();
            var expected = new ProcessedArguments();

            var actual = _service.ProcessArgs(args);

            Assert.AreEqual(expected, actual);
        }
예제 #3
0
        private static ProcessedArguments ProcessArgs(string[] args)
        {
            ;
            var processedArguments = new ProcessedArguments();

            if (args.Length == 0)
            {
                return(processedArguments);
            }

            processedArguments.IsHelpCall = args[args.Length - 1] == Settings.HelpString;
            processedArguments.Controller = TryGetArg(args, 0);
            processedArguments.Command    = TryGetArg(args, 1);

            if (args.Length > 2 && !processedArguments.IsHelpCall)
            {
                var argsList = args.ToList();
                argsList.RemoveRange(0, 2);
                processedArguments.Arguments = SetArguments(argsList);
            }

            return(processedArguments);
        }