Esempio n. 1
0
        /// <summary>
        /// Validate args, will throw InvalidOperationException when parsing duplicated args.
        /// <returns>
        /// Parse args, will return ArgsParsingResult with error code and trigger reason when parsing undefined args.
        /// Return IsSuccess true when parsing successfully
        /// </returns>
        /// </summary>
        /// <param name="args">A string array which are need to be parsed</param>
        public ArgsParsingResult Parse(string[] args)
        {
            ValidateArgs(args);
            var duplicatedArgs = GetDuplicatedArgs(args);

            if (duplicatedArgs != null)
            {
                var result = new ArgsParsingResult();
                result.IsSuccess = false;
                result.Error     = new ParsingError(ParsingErrorCode.DuplicateFlagsInArgs, duplicatedArgs);
                return(result);
            }

            return(ParseArgs(args));
        }
Esempio n. 2
0
        ArgsParsingResult ParseArgs(string[] args)
        {
            var result        = new ArgsParsingResult();
            var needParseArgs = GetNeedParseArgs(args);

            foreach (var arg in needParseArgs)
            {
                var flagOption = GetFlag(arg.Arg);
                if (flagOption == null)
                {
                    result.IsSuccess = false;
                    result.Error     = new ParsingError(ParsingErrorCode.FreeValueNotSupported, arg.Trigger);
                    return(result);
                }

                result.FlagOptions.Add(flagOption);
            }

            result.IsSuccess = true;
            result.Command   = DefaultCommand;
            return(result);
        }