예제 #1
0
        public override string ToString()
        {
            StringBuilder message = new StringBuilder();

            if (!String.IsNullOrEmpty(TableName))
            {
                message.AppendLine($"Table: {TableName}");
            }
            if (QueryLineNumber > 0)
            {
                message.AppendLine($"Line: {QueryLineNumber}");
            }
            if (!String.IsNullOrEmpty(Usage))
            {
                message.AppendLine($"Usage: {Usage}");
            }

            if (!String.IsNullOrEmpty(ErrorMessage))
            {
                message.AppendLine(ErrorMessage);
            }
            else
            {
                if (String.IsNullOrEmpty(InvalidValueCategory))
                {
                    message.AppendLine($"Value \"{InvalidValue}\" found when no more arguments were expected.");
                }
                else if (String.IsNullOrEmpty(InvalidValue))
                {
                    message.AppendLine($"No argument found when {InvalidValueCategory} was required.");
                }
                else
                {
                    message.AppendLine($"\"{InvalidValue}\" was not a valid {InvalidValueCategory}.");
                }
            }

            if (ValidValues != null)
            {
                message.AppendLine("Valid Options:");
                foreach (string value in ValidValues.OrderBy((s) => s))
                {
                    message.AppendLine(value);
                }
            }

            return(message.ToString());
        }