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()); }