public Task ReleaseLockAsync(IDistributedLock lockHandle, CancellationToken cancellationToken)
            {
                FakeLock x = (FakeLock)lockHandle;

                lock (_locks)
                {
                    _locks.Remove(x.LockId);
                }
                return(Task.CompletedTask);
            }
            public Task <IDistributedLock> TryLockAsync(string account, string lockId, string lockOwnerId, string proposedLeaseId, TimeSpan lockPeriod, CancellationToken cancellationToken)
            {
                FakeLock entry = null;

                lock (_locks)
                {
                    if (!_locks.ContainsKey(lockId))
                    {
                        entry = new FakeLock
                        {
                            LockId      = lockId,
                            LockOwnerId = lockOwnerId
                        };
                        _locks[lockId] = entry;
                    }
                }
                return(Task.FromResult <IDistributedLock>(entry));
            }