private void Events_ConnectionClosed(RemotingDbConnection connection) { var id = GetOrThrowConnectionId(connection); ConnectionIds.TryRemove(connection, out _); CloseConnection(id); }
/// <summary> /// /// </summary> /// <param name="connection"></param> /// <param name="isolationLevel"></param> /// <param name="strategy"></param> public RemoteDbTransaction(RemotingDbConnection connection, IsolationLevel isolationLevel, RemotingStrategy strategy) { Connection = connection; IsolationLevel = isolationLevel; Strategy = strategy; Status = TransactionStatus.InDoubt; Strategy.Events.OnTransactionCreated(this); }
private string GetOrThrowConnectionId(RemotingDbConnection connection) { if (ConnectionIds.TryGetValue(connection, out var id)) { return(id); } throw new InvalidOperationException("Missing Connection Id"); }
private void Events_ConnectionOpened(RemotingDbConnection connection) { ConnectionIds.TryAdd(connection, RegisterConnection()); }