using SqliteDotNet; using System; using System.ComponentModel; using System.Drawing; using System.IO; using System.Windows.Forms; namespace MgTestAdmin { public partial class Workbench : Form { class OpenDatabase { public string Name { get; set; } public DbControl Control { get; set; } } private BindingList _openDbs = new BindingList(); private OperationProviderService _opService; public Workbench() { InitializeComponent(); _opService = new OperationProviderService(); lstOpenDbs.DataSource = _openDbs; } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit(); } private void openDatabaseToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog.Filter = "db files (*.db)|*.db|All files (*.*)|*.*"; openFileDialog.RestoreDirectory = true; string fName = ""; if (openFileDialog.ShowDialog() == DialogResult.OK) { fName = openFileDialog.FileName; var db = new SqliteDb(); db.Open(fName); OpenTestManager(fName, db); } } private void OpenTestManager(string fName, SqliteDb db) { var name = Path.GetFileName(fName); var manager = new DbControl(name); manager.Dock = DockStyle.Fill; manager.Setup(db, _opService); var odb = new OpenDatabase { Name = name, Control = manager }; _openDbs.Add(odb); UpdateSelectedDb(); } private void operationBrowserToolStripMenuItem_Click(object sender, EventArgs e) { var manager = new OperationBrowserControl(); manager.Dock = DockStyle.Fill; manager.Setup(_opService); using (var window = new Form()) { window.Size = new Size(1024, 768); window.StartPosition = FormStartPosition.CenterParent; window.Text = "Operation Browser"; window.Controls.Add(manager); window.ShowDialog(); } } private void createUnitTestTemplateDatabaseToolStripMenuItem_Click(object sender, EventArgs e) { saveFileDialog.Filter = "db files (*.db)|*.db|All files (*.*)|*.*"; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { var dbName = saveFileDialog.FileName; if (!SqliteDbExtensions.IsReadOnly(dbName)) { //Open the database. SQLite will create the file for us var db = new SqliteDb(); db.Open(dbName); //Create a template database for the unit test infrastructure db.CreateTemplate(); OpenTestManager(dbName, db); } } } private void createDatabaseFromDumpToolStripMenuItem_Click(object sender, EventArgs e) { saveFileDialog.Filter = "db files (*.db)|*.db|All files (*.*)|*.*"; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { openFileDialog.Filter = "SQLite dump files (*.dump)|*.dump"; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { var dbName = saveFileDialog.FileName; var dumpPath = openFileDialog.FileName; if (!SqliteDbExtensions.IsReadOnly(dbName)) { //Open the database. SQLite will create the file for us var db = new SqliteDb(); db.Open(dbName); db.LoadFromDump(dumpPath); OpenTestManager(dbName, db); } } } } private void lstOpenDbs_SelectedIndexChanged(object sender, EventArgs e) { UpdateSelectedDb(); } private void UpdateSelectedDb() { var item = lstOpenDbs.SelectedItem as OpenDatabase; if (item != null) { mainContainer.Panel2.Controls.Clear(); mainContainer.Panel2.Controls.Add(item.Control); } } } }