예제 #1
0
        private Task <DataSessionState> BeginSession(TransactionContext transactionContext)
        {
            if (transactionContext == null)
            {
                throw new ArgumentNullException(nameof(transactionContext));
            }

            return(Task.Run(
                       () =>
            {
                var state = new DataSessionState();
                WriteOperationTrace(state, "beginSession");

                WriteOperationTrace(state, "createConnection");
                state.Connection = new MockConnection {
                    ConnectionString = $"MockDataSource.Id={this.Id},TransactionGroupName={this.TransactionGroupName}"
                };

                WriteOperationTrace(state, "openConnection");
                state.Connection.Open();

                if (transactionContext.Affinity != TransactionContextAffinity.NotSupported)
                {
                    WriteOperationTrace(state, "beginTransaction");
                    state.Transaction = state.Connection.BeginTransaction(transactionContext.IsolationLevel);
                }

                return state;
            }));
        }
예제 #2
0
		private Task<DataSessionState> BeginSession(TransactionContext transactionContext)
		{
			if (transactionContext == null) throw new ArgumentNullException(nameof(transactionContext));

			return Task.Run(
				() =>
				{
					var state = new DataSessionState();
					WriteOperationTrace(state, "beginSession");

					WriteOperationTrace(state, "createConnection");
					state.Connection = new MockConnection { ConnectionString = $"MockDataSource.Id={this.Id},TransactionGroupName={this.TransactionGroupName}" };

					WriteOperationTrace(state, "openConnection");
					state.Connection.Open();

					if (transactionContext.Affinity != TransactionContextAffinity.NotSupported)
					{
						WriteOperationTrace(state, "beginTransaction");
						state.Transaction = state.Connection.BeginTransaction(transactionContext.IsolationLevel);
					}

					return state;
				});
		}
예제 #3
0
 private static void WriteOperationTrace(DataSessionState state, string operation)
 {
     Trace.WriteLine(string.Format("{0},{1},{2}", state.GetHashCode(), operation, Thread.CurrentThread.ManagedThreadId), "NLight.Tests.Unit.Transactions.MockDataSource.operations");
 }
예제 #4
0
		private static void WriteOperationTrace(DataSessionState state, string operation)
		{
			Trace.WriteLine(string.Format("{0},{1},{2}", state.GetHashCode(), operation, Thread.CurrentThread.ManagedThreadId), "NLight.Tests.Unit.Transactions.MockDataSource.operations");
		}