Example #1
0
        public virtual bool IsValid()
        {
            var ret = true;

            foreach (var paramRow in paramTable)
            {
                var arg = ParsedArgs.ContainsKey(paramRow.Key) ? ParsedArgs[paramRow.Key] : null;

                if (arg == null)
                {
                    if (paramRow.Required)
                    {
                        ret = OutputValidationMessage(string.Format("Missing required argument key: {0}.", paramRow.Key));
                    }

                    continue;
                }

                if ((paramRow.RequiresArgument) && (arg.Count == 0 || string.IsNullOrEmpty(arg[0])))
                {
                    return(OutputValidationMessage(string.Format("Missing argument value for key: {0}.", paramRow.Key)));
                }

                if (arg.Count > 1 && !paramRow.Reoccurs)
                {
                    ret = OutputValidationMessage(string.Format("Argument key cannot reoccur: {0}.", paramRow.Key));
                }
            }

            foreach (var keyValuePair in ParsedArgs)
            {
                var paramRow = Array.Find(paramTable, match => match.Key == keyValuePair.Key);

                if (paramRow == null)
                {
                    ret = OutputValidationMessage(string.Format("Argument key unknown: {0}.", keyValuePair.Key));
                }
            }

            return(ret);
        }