private string ReplaceVar(string strInput)
{
bool flag = false;
int i = 0;
StringBuilder stringBuilder = new StringBuilder(255);
Regex regex = new Regex("@[a-zA-Z_][a-zA-Z0-9_]{1,255}@", RegexOptions.IgnoreCase);
int length = strInput.Length;
while (i < length)
{
char c = strInput[i];
if (c == '\'')
{
flag = !flag;
stringBuilder.Append(c);
i++;
}
else if (flag)
{
stringBuilder.Append(c);
i++;
}
else if (c != '@')
{
stringBuilder.Append(c);
i++;
}
else
{
Match match = regex.Match(strInput, i);
if (!match.Success)
{
stringBuilder.Append(c);
i++;
}
else if (match.Index != i)
{
stringBuilder.Append(c);
i++;
}
else
{
if (this.variablesMapping.ContainsKey(match.Value))
{
stringBuilder.Append(this.variablesMapping[match.Value]);
}
else
{
stringBuilder.Append(match.Value);
}
i += match.Length;
}
}
}
return stringBuilder.ToString();
}