internal static string StripEFCS2Normal(string connectionString)
{
const string PROVIDER = "provider connection string";
if (connectionString.StartsWith("metadata="))
{
var retval = string.Empty;
var index = connectionString.IndexOf(PROVIDER);
var index1 = -1;
var index2 = -1;
if (index == -1) return connectionString;
var foundEQ = false;
for (var ii = index + PROVIDER.Length; ii < connectionString.Length; ii++)
{
if (connectionString[ii] == '=')
{
foundEQ = true;
}
else if (foundEQ)
{
if (connectionString.Substring(ii, 1) == "\"")
{
index1 = ii + 1;
index2 = connectionString.IndexOf("\"", ii + 1);
}
else if (connectionString.Substring(ii, 1) == "'")
{
index1 = ii + 1;
index2 = connectionString.IndexOf("'", ii + 1);
}
else if (connectionString.Substring(ii, 6) == """)
{
index1 = ii + 6;
index2 = connectionString.IndexOf(""", ii + 1);
}
}
if (index1 != -1 && index2 != -1)
{
return connectionString.Substring(index1, index2 - index1);
}
}
}
return connectionString;
}