public T GetOrCreate <T>(string key, Func <T> factory)
        {
            var local = _memoryCache.GetOrCreate(key, entry =>
            {
                entry.AbsoluteExpiration = DateTime.UtcNow.AddSeconds(MEMORY_TTL_SECONDS);
                return(GetFromDistributedCache(key, factory));
            });

            return(_converter.Deserialize <CacheWrapper <T> >(local).Data);
        }