public static void Open(Writer db, bool writer, bool immediate = false) { if (writer) { if (dbw == null) { if (((DatabaseManager)db).databaseType == DatabaseManager.DBType.SQLITE && dbr != null) { if (MessageBox.Show("Simultaneous reading and archiving is unsafe in sqlite mode. Close the reader to open the archiver?", "Conflict", MessageBoxButtons.YesNo) == DialogResult.Yes) { dbr.Close(); dbw = new ArchiverWindow(db); } else return; } else dbw = new ArchiverWindow(db); } dbw.Show(); dbw.Focus(); } else { if (dbr == null) { if (((DatabaseManager)db).databaseType == DatabaseManager.DBType.SQLITE && dbw != null) { if (MessageBox.Show("Simultaneous reading and archiving is unsafe in sqlite mode. Close the archiver to open the reader?", "Conflict", MessageBoxButtons.YesNo) == DialogResult.Yes) { dbw.Close(); dbr = new Reader(db); } else return; } else dbr = new Reader(db); } dbr.Show(); dbr.Focus(); } }
public static void Shutdown(Form window, Writer db) { if (dbr == null && dbw == null) { Application.Exit(); return; } else if (window == null && db == null) return; if ((window == dbw && dbr == null) || (window == dbr && dbw == null)) { db.Close(); Application.Exit(); return; } if (window == dbr) dbr = null; else dbw = null; }