public Task <bool> Add(TicketCacheEntry entry)
        {
            bool added = false;

            var cacheEntry = new CacheEntry(cache, entry.Computed, entry.Value, logger);

            if (cache.TryAdd(cacheEntry.Key, cacheEntry))
            {
                var lifetime = entry.Expires - DateTimeOffset.UtcNow;

                if (lifetime > TimeSpan.Zero)
                {
                    cacheEntry.BeginTriggerDelay(lifetime, cancel.Token);

                    added = true;
                }
            }

            return(Task.FromResult(added));
        }