public static string GetDBPassword(string edition, string dbType)
{
string DBPassword = "";
string fileName = Options.GetOption("/Options/PathToFolderWhereToInstall/edition[@title='" + edition + "']/" + dbType) + "\\bitrix\\php_interface\\dbconn.php";
if (File.Exists(fileName) == true)
{
StreamReader streamReader = new StreamReader(fileName, Encoding.Default);
string workText = streamReader.ReadToEnd();
streamReader.Close();
//смотрим, если тип базы Оракл
string toReplaceDBType = @"^.*\$DBType = ""oracle"";.*$";
if (Regex.IsMatch(workText, toReplaceDBType, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline))
{
string toReplaceOracle = @"^.*\$DBPassword = ""([^""]*)"";.*$";
string replacement = @"${1}";
if (Regex.IsMatch(workText, toReplaceOracle, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline))
DBPassword = Regex.Replace(workText, toReplaceOracle, replacement, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline);
else
{
System.Windows.Forms.DialogResult result = MessageBox.Show("Невозможно получить пароль от базы отсюда \r\n" + fileName + "\r\n\r\n Выполнение теста прервано",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
if (result == System.Windows.Forms.DialogResult.OK)
{
Log.MesError("Невозможно получить пароль базы для устаноки " + edition + "_" + dbType + "\r\nВыполнение теста прервано");
return null;
}
}
}
else
{
string toReplace = @"^.*\$DBPassword = ""(.*)"";.*$";
string replacement = @"${1}";
if (Regex.IsMatch(workText, toReplace, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline))
DBPassword = Regex.Replace(workText, toReplace, replacement, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Multiline);
else
{
System.Windows.Forms.DialogResult result = MessageBox.Show("Невозможно получить имя базы отсюда \r\n" + fileName + "\r\n\r\n Выполнение теста прервано",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
if (result == System.Windows.Forms.DialogResult.OK)
{
Log.MesError("Невозможно получить имя базы для устаноки " + edition + "_" + dbType + "\r\nВыполнение теста прервано");
return null;
}
}
}
}
else
{
System.Windows.Forms.DialogResult result = MessageBox.Show("Не найден файл \r\n" + fileName + "\r\n\r\n Выполнение теста прервано",
"Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
if (result == System.Windows.Forms.DialogResult.OK)
{
Log.MesError("Не найден файл " + fileName + "\r\nВыполнение теста прервано");
return null;
}
}
return DBPassword;
}