private async Task <bool> CreateUpdateItem(string region, object item)
        {
            var mongoCollection = MongoUtilities.InitializeMongoDatabase(region, _mongoConnectionString);

            Task.Factory.StartNew(() => RemoveExpired(region));
            var results = await Task.Factory.StartNew(() => mongoCollection.Save(item));

            return(await MongoUtilities.VerifyReturnMessage(results));
        }
        /// <summary>
        /// removes an item from cache region
        /// </summary>
        /// <param name="cacheKey"></param>
        /// <param name="region"></param>
        /// <returns></returns>
        public override async Task <bool> Remove(object cacheKey, string region)
        {
            if (!_isEnabled)
            {
                return(true);
            }

            var mongoCollection = MongoUtilities.InitializeMongoDatabase(region, _mongoConnectionString);

            var query   = Query.EQ("CacheKey", cacheKey.ToString());
            var results = await Task.Factory.StartNew(() => mongoCollection.Remove(query));

            return(await MongoUtilities.VerifyReturnMessage(results));
        }