private void selectPathFrom_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new OpenFileDialog
              {
            AddExtension = true,
            CheckPathExists = true,
            Filter = "Backup (*.bak) | *.bak; | All Files (*.*) | *.*",
            InitialDirectory = this.initialPath,
            Title = "Specify backup file"
              };
              bool? showDialog = dialog.ShowDialog();
              if (showDialog.Value != true)
              {
            return;
              }

              this.dbPathFrom.Text = dialog.FileName;
              try
              {
            this.bakInfo = SqlServerManager.Instance.GetDatabasesNameFromBackup(ProfileManager.GetConnectionString(), dialog.FileName);
            this.dbPathTo.Text = System.IO.Path.GetDirectoryName(this.bakInfo.physicalNameMdf);
            this.dbName.Text = this.bakInfo.dbOriginalName;
            this.fileName.Text = this.bakInfo.GetDatabaseName() + ".mdf";
              }
              catch (Exception ex)
              {
            Log.Warn(string.Format("Cannot get information from '{0}' backup", dialog.FileName), typeof(int), ex);
            WindowHelper.ShowMessage("Cannot get information from backup!", MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK);
              }
        }
        private void RestoreDatabases(ImportArgs args)
        {
            if (FileSystem.FileSystem.Local.Directory.Exists(args.temporaryPathToUnpack.PathCombine("Databases")))
              {
            foreach (string file in FileSystem.FileSystem.Local.Directory.GetFiles(args.temporaryPathToUnpack.PathCombine("Databases")))
            {
              FileSystem.FileSystem.Local.File.Delete(file);
            }
              }

              List<string> backupsPaths = this.ExtractDatabases(args);
              if (backupsPaths.Count == 0)
              {
            return;
              }

              var backupInfo = new SqlServerManager.BackupInfo();
              this.GetPostfixForDatabases(backupsPaths, args.connectionString, ref args.databaseNameAppend);

              foreach (string backup in backupsPaths)
              {
            backupInfo = SqlServerManager.Instance.GetDatabasesNameFromBackup(args.connectionString, backup);
            string dbName = backupInfo.dbOriginalName;

            // dbName = GetDatabaseName(dbName, args.connectionString, ref args.databaseNameAppend);
            dbName = this.GetDatabaseName(dbName, ref args.databaseNameAppend);

            // dbName = dbName + GetDBNameAppend(dbName, args.connectionString, 0);
            SqlServerManager.Instance.RestoreDatabase(dbName,
              args.connectionString,
              backup,
              FileSystem.FileSystem.Local.Directory.GetParent(args.virtualDirectoryPhysicalPath).FullName.PathCombine("Databases"),
              backupInfo);
              }
        }