public override void Run() { CompanyForm f = new CompanyForm(new Company()); f.CompanySave += delegate(object sender, CompanyEventArgs e) { using (var d = new SaveFileDialog()) { d.Title = "Filename for New Company"; d.FileName = f.Company.Name + ".sqlite"; if (d.ShowDialog() == DialogResult.OK) { SQLiteConnection con = new SQLiteConnection("Data Source=" + d.FileName + ";Version=3"); con.Open(); SQLiteUtility.ExecuteNonQuery(con, new StreamReader(Path.Combine(ApplicationUtility.RootDirectory, "sqlscript.sql")).ReadToEnd()); con.Close(); NHibernateHelper.CloseSession(); NHibernateHelper.Configuration = new SQLiteDatabase(con.ConnectionString).CreateConfiguration(); new NHibernateCompanyRepository().SaveOrUpdate(f.Company); new NHibernateUserRepository().SaveOrUpdate(new User("admin", "root")); } } }; WorkbenchSingleton.AddDialog(f); }