/// <summary> /// Finalises or disposes of the object. /// </summary> /// <param name="disposing"></param> private void Dispose(bool disposing) { if(disposing) { if(_ClientTable != null) _ClientTable.Dispose(); if(_SessionTable != null) _SessionTable.Dispose(); _TransactionHelper.Abandon(); if(_Connection != null) _Connection.Dispose(); _Connection = null; _ClientTable = null; _SessionTable = null; } }
/// <summary> /// Opens a connect to the database file, can be called while a connection is already open /// </summary> private void CreateConnection() { if(_Connection == null) { IConfigurationStorage configurationStorage = Factory.Singleton.Resolve<IConfigurationStorage>().Singleton; var builder = Factory.Singleton.Resolve<ISQLiteConnectionStringBuilder>().Initialise(); builder.DataSource = Path.Combine(configurationStorage.Folder, "ConnectionLog.sqb"); builder.DateTimeFormat = SQLiteDateFormats.JulianDay; builder.ReadOnly = false; builder.FailIfMissing = false; builder.JournalMode = SQLiteJournalModeEnum.Persist; var connection = Factory.Singleton.Resolve<ISQLiteConnectionProvider>().Create(builder.ConnectionString); _Connection = connection; _Connection.Open(); _ClientTable = new ClientTable(); _SessionTable = new SessionTable(); _ClientTable.CreateTable(_Connection); _SessionTable.CreateTable(_Connection); } }