public SQLiteTransactionalDataSource(SQLiteDataSource dataSource, IsolationLevel?isolationLevel, bool forwardEvents) : base(new SQLiteDataSourceSettings(dataSource, forwardEvents)) { if (dataSource == null) { throw new ArgumentNullException(nameof(dataSource), $"{nameof(dataSource)} is null."); } Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = dataSource.CreateConnection(); m_LockToken = SyncLock.WriterLock(); if (isolationLevel == null) { m_Transaction = m_Connection.BeginTransaction(); } else { m_Transaction = m_Connection.BeginTransaction(isolationLevel.Value); } if (forwardEvents) { ExecutionStarted += (sender, e) => dataSource.OnExecutionStarted(e); ExecutionFinished += (sender, e) => dataSource.OnExecutionFinished(e); ExecutionError += (sender, e) => dataSource.OnExecutionError(e); ExecutionCanceled += (sender, e) => dataSource.OnExecutionCanceled(e); } AuditRules = dataSource.AuditRules; UserValue = dataSource.UserValue; }
static TestBase() { s_DataSource = new SQLiteDataSource("Data Source=SQLiteTestDatabase.sqlite;"); s_StrictDataSource = s_DataSource.WithSettings(new SQLiteDataSourceSettings() { StrictMode = true }); }
static TestBase() { s_DataSource = new SQLiteDataSource(System.Configuration.ConfigurationManager.ConnectionStrings["SQLiteTestDatabase"].ConnectionString); s_StrictDataSource = s_DataSource.WithSettings(new SQLiteDataSourceSettings() { StrictMode = true }); }
public SQLiteDataSource AttachSoftDeleteRulesWithUser(SQLiteDataSource source) { var currentUser1 = source.From(EmployeeTableName).WithLimits(1).ToObject <Employee>().Execute(); return(source.WithRules( new SoftDeleteRule("DeletedFlag", true, OperationTypes.SelectOrDelete), new UserDataRule("DeletedByKey", "EmployeeKey", OperationTypes.Delete), new DateTimeRule("DeletedDate", DateTimeKind.Local, OperationTypes.Delete) ).WithUser(currentUser1)); }
public SQLiteDataSource AttachRules(SQLiteDataSource source) { return(source.WithRules( new DateTimeRule("CreatedDate", DateTimeKind.Local, OperationTypes.Insert), new DateTimeRule("UpdatedDate", DateTimeKind.Local, OperationTypes.InsertOrUpdate), new UserDataRule("CreatedByKey", "EmployeeKey", OperationTypes.Insert), new UserDataRule("UpdatedByKey", "EmployeeKey", OperationTypes.InsertOrUpdate), new ValidateWithValidatable(OperationTypes.InsertOrUpdate) )); }
internal SQLiteOpenDataSource(SQLiteDataSource dataSource, SQLiteConnection connection, SQLiteTransaction?transaction) : base(new SQLiteDataSourceSettings(dataSource)) { if (connection == null) { throw new ArgumentNullException(nameof(connection), $"{nameof(connection)} is null."); } m_BaseDataSource = dataSource; m_Connection = connection; m_Transaction = transaction; }
internal SQLiteOpenDataSource(SQLiteDataSource dataSource, SQLiteConnection connection, SQLiteTransaction transaction) : base(new SQLiteDataSourceSettings() { DefaultCommandTimeout = dataSource.DefaultCommandTimeout, StrictMode = dataSource.StrictMode, SuppressGlobalEvents = dataSource.SuppressGlobalEvents, DisableLocks = dataSource.DisableLocks }) { if (connection == null) { throw new ArgumentNullException(nameof(connection), $"{nameof(connection)} is null."); } m_BaseDataSource = dataSource; m_Connection = connection; m_Transaction = transaction; }
static TestBase() { Setup.AssemblyInit(); foreach (ConnectionStringSettings con in ConfigurationManager.ConnectionStrings) { var ds = new SQLiteDataSource(con.Name, con.ConnectionString); s_DataSources.Add(con.Name, ds); if (s_PrimaryDataSource == null) { s_PrimaryDataSource = ds; } } }
internal SQLiteDataSourceSettings(SQLiteDataSource dataSource, bool forwardEvents) { if (dataSource == null) { throw new ArgumentNullException(nameof(dataSource), $"{nameof(dataSource)} is null."); } DefaultCommandTimeout = dataSource.DefaultCommandTimeout; StrictMode = dataSource.StrictMode; SuppressGlobalEvents = dataSource.SuppressGlobalEvents || forwardEvents; DisableLocks = dataSource.DisableLocks; EnforceForeignKeys = dataSource.EnforceForeignKeys; }
static TestBase() { Setup.AssemblyInit(); var configuration = new ConfigurationBuilder().SetBasePath(AppContext.BaseDirectory).AddJsonFile("appsettings.json").Build(); foreach (var con in configuration.GetSection("ConnectionStrings").GetChildren()) { var ds = new SQLiteDataSource(con.Key, con.Value); s_DataSources.Add(con.Key, ds); if (s_PrimaryDataSource == null) { s_PrimaryDataSource = ds; } } BuildEmployeeSearchKey1000(s_PrimaryDataSource); }
internal static void SetupTestBase() { if (s_PrimaryDataSource != null) { return; //run once check } Setup.CreateDatabase(); var configuration = new ConfigurationBuilder().SetBasePath(AppContext.BaseDirectory).AddJsonFile("appsettings.json").Build(); foreach (var con in configuration.GetSection("ConnectionStrings").GetChildren()) { var ds = new SQLiteDataSource(con.Key, con.Value); if (s_PrimaryDataSource == null) { s_PrimaryDataSource = ds; } s_DataSources.Add(con.Key, ds); } BuildEmployeeSearchKey1000(s_PrimaryDataSource); }
/// <summary> /// Initializes a new instance of the <see cref="SQLiteTransactionalDataSource" /> class. /// </summary> /// <param name="dataSource">The data source.</param> /// <param name="forwardEvents">if set to <c>true</c> [forward events].</param> /// <param name="connection">The connection.</param> /// <param name="transaction">The transaction.</param> /// <param name="lockToken">The lock token.</param> /// <exception cref="ArgumentNullException"> /// </exception> internal SQLiteTransactionalDataSource(SQLiteDataSource dataSource, bool forwardEvents, SQLiteConnection connection, SQLiteTransaction transaction, IDisposable?lockToken) : base(new SQLiteDataSourceSettings(dataSource)) { if (dataSource == null) { throw new ArgumentNullException(nameof(dataSource), $"{nameof(dataSource)} is null."); } if (connection == null) { throw new ArgumentNullException(nameof(connection), $"{nameof(connection)} is null."); } if (transaction == null) { throw new ArgumentNullException(nameof(transaction), $"{nameof(transaction)} is null."); } if (lockToken == null) { throw new ArgumentNullException(nameof(lockToken), $"{nameof(lockToken)} is null."); } Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = connection; m_Transaction = transaction; m_LockToken = lockToken; if (forwardEvents) { ExecutionStarted += (sender, e) => dataSource.OnExecutionStarted(e); ExecutionFinished += (sender, e) => dataSource.OnExecutionFinished(e); ExecutionError += (sender, e) => dataSource.OnExecutionError(e); ExecutionCanceled += (sender, e) => dataSource.OnExecutionCanceled(e); } AuditRules = dataSource.AuditRules; UserValue = dataSource.UserValue; }
/// <summary> /// Initializes a new instance of the <see cref="SQLiteTransactionalDataSource" /> class. /// </summary> /// <param name="dataSource">The data source.</param> /// <param name="forwardEvents">if set to <c>true</c> [forward events].</param> /// <param name="connection">The connection.</param> /// <param name="transaction">The transaction.</param> /// <param name="lockToken">The lock token.</param> /// <exception cref="ArgumentNullException"> /// </exception> internal SQLiteTransactionalDataSource(SQLiteDataSource dataSource, bool forwardEvents, SQLiteConnection connection, SQLiteTransaction transaction, IDisposable lockToken) : base(new SQLiteDataSourceSettings() { DefaultCommandTimeout = dataSource.DefaultCommandTimeout, StrictMode = dataSource.StrictMode, SuppressGlobalEvents = dataSource.SuppressGlobalEvents || forwardEvents, DisableLocks = dataSource.DisableLocks }) { if (dataSource == null) { throw new ArgumentNullException(nameof(dataSource), $"{nameof(dataSource)} is null."); } if (connection == null) { throw new ArgumentNullException(nameof(connection), $"{nameof(connection)} is null."); } if (transaction == null) { throw new ArgumentNullException(nameof(transaction), $"{nameof(transaction)} is null."); } if (lockToken == null) { throw new ArgumentNullException(nameof(lockToken), $"{nameof(lockToken)} is null."); } Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = connection; m_Transaction = transaction; m_LockToken = lockToken; if (forwardEvents) { ExecutionStarted += (sender, e) => dataSource.OnExecutionStarted(e); ExecutionFinished += (sender, e) => dataSource.OnExecutionFinished(e); ExecutionError += (sender, e) => dataSource.OnExecutionError(e); ExecutionCanceled += (sender, e) => dataSource.OnExecutionCanceled(e); } AuditRules = dataSource.AuditRules; UserValue = dataSource.UserValue; }
/// <summary> /// Creates a new data source with the indicated changes to the settings. /// </summary> /// <param name="settings">The new settings to use.</param> /// <returns></returns> /// <remarks>The new data source will share the same database metadata cache.</remarks> public SQLiteDataSource WithSettings(SQLiteDataSourceSettings?settings) { var mergedSettings = new SQLiteDataSourceSettings() { DefaultCommandTimeout = settings?.DefaultCommandTimeout ?? DefaultCommandTimeout, SuppressGlobalEvents = settings?.SuppressGlobalEvents ?? SuppressGlobalEvents, StrictMode = settings?.StrictMode ?? StrictMode, SequentialAccessMode = settings?.SequentialAccessMode ?? SequentialAccessMode, DisableLocks = settings?.DisableLocks ?? DisableLocks, EnforceForeignKeys = settings?.EnforceForeignKeys ?? EnforceForeignKeys }; var result = new SQLiteDataSource(Name, m_ConnectionBuilder, mergedSettings, m_DatabaseMetadata, m_Cache, m_ExtensionCache); result.m_DatabaseMetadata = m_DatabaseMetadata; result.AuditRules = AuditRules; result.UserValue = UserValue; result.ExecutionStarted += (sender, e) => OnExecutionStarted(e); result.ExecutionFinished += (sender, e) => OnExecutionFinished(e); result.ExecutionError += (sender, e) => OnExecutionError(e); result.ExecutionCanceled += (sender, e) => OnExecutionCanceled(e); return(result); }