/// <summary> /// Initializes a new instance of the <see cref="OleDbSqlServerTransactionalDataSource"/> class. /// </summary> /// <param name="dataSource">The parent connection.</param> /// <param name="transactionName">Name of the transaction.</param> /// <param name="isolationLevel">The isolation level. If not supplied, will use the database default.</param> /// <param name="forwardEvents">If true, logging events are forwarded to the parent connection.</param> public OleDbSqlServerTransactionalDataSource(OleDbSqlServerDataSource dataSource, string?transactionName, IsolationLevel?isolationLevel, bool forwardEvents) : base(new SqlServerDataSourceSettings(dataSource, forwardEvents)) { Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = dataSource.CreateConnection(); TransactionName = transactionName; 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; }
/// <summary> /// Initializes a new instance of the <see cref="OleDbSqlServerTransactionalDataSource"/> class. /// </summary> /// <param name="dataSource">The parent connection.</param> /// <param name="transactionName">Name of the transaction.</param> /// <param name="isolationLevel">The isolation level. If not supplied, will use the database default.</param> /// <param name="forwardEvents">If true, logging events are forwarded to the parent connection.</param> public OleDbSqlServerTransactionalDataSource(OleDbSqlServerDataSource dataSource, string transactionName, IsolationLevel?isolationLevel, bool forwardEvents) : base(new SqlServerDataSourceSettings() { DefaultCommandTimeout = dataSource.DefaultCommandTimeout, StrictMode = dataSource.StrictMode, SuppressGlobalEvents = dataSource.SuppressGlobalEvents || forwardEvents }) { Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = dataSource.CreateConnection(); m_TransactionName = transactionName; 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; }
public OleDbSqlServerDataSource AttachSoftDeleteRulesWithUser(OleDbSqlServerDataSource source) { var currentUser1 = source.From(EmployeeTableName).WithLimits(1).ToObject <Employee>().Execute(); return(source.WithRules( new SoftDeleteRule("DeletedFlag", true), new UserDataRule("DeletedByKey", "EmployeeKey", OperationTypes.Delete), new DateTimeRule("DeletedDate", DateTimeKind.Local, OperationTypes.Delete) ).WithUser(currentUser1)); }
public OleDbSqlServerDataSource AttachRules(OleDbSqlServerDataSource 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 OleDbSqlServerOpenDataSource(OleDbSqlServerDataSource dataSource, OleDbConnection connection, OleDbTransaction transaction) : base(new SqlServerDataSourceSettings() { DefaultCommandTimeout = dataSource.DefaultCommandTimeout, StrictMode = dataSource.StrictMode, SuppressGlobalEvents = dataSource.SuppressGlobalEvents }) { if (connection == null) { throw new ArgumentNullException(nameof(connection), $"{nameof(connection)} is null."); } m_BaseDataSource = dataSource; m_Connection = connection; m_Transaction = transaction; }
internal SqlServerDataSourceSettings(OleDbSqlServerDataSource 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; }
internal OleDbSqlServerOpenDataSource(OleDbSqlServerDataSource dataSource, OleDbConnection connection, OleDbTransaction?transaction) : base(new SqlServerDataSourceSettings(dataSource)) { if (connection == null) { throw new ArgumentNullException(nameof(connection), $"{nameof(connection)} is null."); } m_BaseDataSource = dataSource; m_Connection = connection; m_Transaction = transaction; }
static TestBase() { foreach (ConnectionStringSettings con in ConfigurationManager.ConnectionStrings) { var ds = new OleDbSqlServerDataSource(con.Name, con.ConnectionString); s_DataSources.Add(con.Name, ds); if (s_PrimaryDataSource == null) { s_PrimaryDataSource = ds; } } }
internal SqlServerDataSourceSettings(OleDbSqlServerDataSource dataSource, bool forwardEvents = false) { if (dataSource == null) { throw new ArgumentNullException(nameof(dataSource), $"{nameof(dataSource)} is null."); } DefaultCommandTimeout = dataSource.DefaultCommandTimeout; StrictMode = dataSource.StrictMode; SequentialAccessMode = dataSource.SequentialAccessMode; SuppressGlobalEvents = dataSource.SuppressGlobalEvents || forwardEvents; ArithAbort = dataSource.ArithAbort; XactAbort = dataSource.XactAbort; }
/// <summary> /// Initializes a new instance of the <see cref="SqlServerTransactionalDataSource" /> class. /// </summary> /// <param name="dataSource">The parent connection.</param> /// <param name="transactionName">Name of the transaction.</param> /// <param name="forwardEvents">If true, logging events are forwarded to the parent connection.</param> /// <param name="connection">The connection.</param> /// <param name="transaction">The transaction.</param> internal OleDbSqlServerTransactionalDataSource(OleDbSqlServerDataSource dataSource, string transactionName, bool forwardEvents, OleDbConnection connection, OleDbTransaction transaction) : base(new SqlServerDataSourceSettings() { DefaultCommandTimeout = dataSource.DefaultCommandTimeout, StrictMode = dataSource.StrictMode, SuppressGlobalEvents = dataSource.SuppressGlobalEvents || forwardEvents }) { Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = connection; m_TransactionName = transactionName; m_Transaction = transaction; 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="OleDbSqlServerTransactionalDataSource" /> class. /// </summary> /// <param name="dataSource">The parent connection.</param> /// <param name="transactionName">Name of the transaction.</param> /// <param name="forwardEvents">If true, logging events are forwarded to the parent connection.</param> /// <param name="connection">The connection.</param> /// <param name="transaction">The transaction.</param> internal OleDbSqlServerTransactionalDataSource(OleDbSqlServerDataSource dataSource, string?transactionName, bool forwardEvents, OleDbConnection connection, OleDbTransaction transaction) : base(new SqlServerDataSourceSettings(dataSource, forwardEvents)) { Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = connection; TransactionName = transactionName; m_Transaction = transaction; 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; }
internal static void SetupTestBase() { if (s_PrimaryDataSource != null) { return; //run once check } var configuration = new ConfigurationBuilder().SetBasePath(AppContext.BaseDirectory).AddJsonFile("appsettings.json").Build(); foreach (var con in configuration.GetSection("ConnectionStrings").GetChildren()) { var ds = new OleDbSqlServerDataSource(con.Key, con.Value); s_DataSources.Add(con.Key, ds); if (s_PrimaryDataSource == null) { s_PrimaryDataSource = ds; } } BuildEmployeeSearchKey1000_NoTrans(s_PrimaryDataSource); //BuildEmployeeSearchKey1000(s_PrimaryDataSource); }
/// <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 OleDbSqlServerDataSource WithSettings(SqlServerDataSourceSettings?settings) { var mergedSettings = new SqlServerDataSourceSettings() { DefaultCommandTimeout = settings?.DefaultCommandTimeout ?? DefaultCommandTimeout, SuppressGlobalEvents = settings?.SuppressGlobalEvents ?? SuppressGlobalEvents, StrictMode = settings?.StrictMode ?? StrictMode, SequentialAccessMode = settings?.SequentialAccessMode ?? SequentialAccessMode, XactAbort = settings?.XactAbort ?? XactAbort, ArithAbort = settings?.ArithAbort ?? ArithAbort }; var result = new OleDbSqlServerDataSource(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); }