public static string Sanitize()

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