public static IDisposable LockConnection(IDbConnection connection)
{
if(connections.Count == 0)
return UndoableAction.Null;
lock (connections)
{
if (!(connection is AmnesiaDbConnection) || !connections.Values.Contains((AmnesiaDbConnection)connection))
return UndoableAction.Null;
}
Monitor.Enter(connection);
return new UndoableAction(delegate
{
Monitor.Exit(connection);
});
}