protected void Add <T>(string key, T value, CacheItemPolicy policy, string region)
        {
            if (policy != null)
            {
                var timeout = DetermineTimeOut(policy);

                if (string.IsNullOrEmpty(region))
                {
                    appFabricCache.Put <T, DataCacheItemVersion>(key, value, timeout);
                }
                else
                {
                    appFabricCache.CreateRegion(region);
                    appFabricCache.Put <T, DataCacheItemVersion>(key, value, timeout, region);
                }
            }
            else
            {
                if (string.IsNullOrEmpty(region))
                {
                    appFabricCache.Put <T, DataCacheItemVersion>(key, value);
                }
                else
                {
                    appFabricCache.Put <T, DataCacheItemVersion>(key, value, region);
                }
            }
        }