public virtual async Task <IAsyncDisposable> AcquireDistributedProcessingMutexAsync()
        {
            var distributedMutex = await SqlTransaction.AcquireAppLockAsync(
                DistributedMutexLockName,
                DistributedMutexAcquisitionTimeoutSeconds,
                throwsException : false
                );

            //Safely return null if the Lock was not successfully acquired.
            return(distributedMutex.IsLockAcquired ? distributedMutex : null);
        }