in Configurator/Base/Classes/ExtensionMethods.cs [664:724]
public static string Sanitize(this string entry, params char[] exceptionCharacters)
{
if (string.IsNullOrEmpty(entry))
{
// Nothing to sanitize
return entry;
}
// Exception flags
var escapeTab = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('\t');
var escapeCarriageReturn = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('\r');
var escapeLineFeed = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('\n');
var escapeZeroChar = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('\0');
var escapeSingleQuote = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('\'');
var escapeDoubleQuote = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('"');
var escapeBackslash = exceptionCharacters.Length == 0 || !exceptionCharacters.Contains('\\');
var sb = new StringBuilder();
var entryCharArray = entry.ToCharArray();
foreach (char c in entryCharArray)
{
if (c.Equals('\t')
&& escapeTab)
{
sb.Append(@"\t");
continue;
}
if (c.Equals('\r')
&& escapeCarriageReturn)
{
sb.Append(@"\r");
continue;
}
if (c.Equals('\n')
&& escapeLineFeed)
{
sb.Append(@"\n");
continue;
}
if (c.Equals('\0')
&& escapeZeroChar)
{
sb.Append(@"\0");
continue;
}
if ((c.ToString() == @"'" && escapeSingleQuote)
|| (c.ToString() == @"""" && escapeDoubleQuote)
|| (c.ToString() == @"\" && escapeBackslash))
{
sb.Append(@"\");
}
sb.Append(c);
}
return sb.ToString();
}