Beispiel #1
0
 public async Task SetAsync(string key, object entry, DateTime utcExpiry)
 {
     //Check if the key is already in database
     //If there is already a value in the cache for the specified key, the Set method will update it.
     //Otherwise it will insert the entry.
     var insertOp = TableOperationHelper.InsertOrReplace(key, entry, utcExpiry);
     await _table.ExecuteAsync(insertOp);
 }
Beispiel #2
0
        public object Get(string key)
        {
            var retrieveOp         = TableOperationHelper.Retrieve(key);
            var retrieveResult     = _table.Execute(retrieveOp);
            var existingCacheEntry = retrieveResult.Result as CacheEntity;

            if (existingCacheEntry != null && existingCacheEntry.UtcExpiry < DateTime.UtcNow)
            {
                Remove(key);
                return(null);
            }
            else
            {
                return(existingCacheEntry?.CacheItem);
            }
        }
Beispiel #3
0
        public object Add(string key, object entry, DateTime utcExpiry)
        {
            var retrieveOp         = TableOperationHelper.Retrieve(key);
            var retrieveResult     = _table.Execute(retrieveOp);
            var existingCacheEntry = retrieveResult.Result as CacheEntity;

            if (existingCacheEntry != null && existingCacheEntry.UtcExpiry > DateTime.UtcNow)
            {
                return(existingCacheEntry.CacheItem);
            }
            else
            {
                Set(key, entry, utcExpiry);
                return(entry);
            }
        }
Beispiel #4
0
        public async Task <object> AddAsync(string key, object entry, DateTime utcExpiry)
        {
            // If there is already a value in the cache for the specified key, the provider must return that value if not expired
            // and must not store the data passed by using the Add method parameters.
            var retrieveOp     = TableOperationHelper.Retrieve(key);
            var retrieveResult = await _table.ExecuteAsync(retrieveOp);

            var existingCacheEntry = retrieveResult.Result as CacheEntity;

            if (existingCacheEntry != null && existingCacheEntry.UtcExpiry > DateTime.UtcNow)
            {
                return(existingCacheEntry.CacheItem);
            }
            else
            {
                await SetAsync(key, entry, utcExpiry);

                return(entry);
            }
        }
Beispiel #5
0
        public async Task <object> GetAsync(string key)
        {
            // Outputcache module will always first call GetAsync
            // so only calling EnsureTableInitializedAsync here is good enough
            await EnsureTableInitializedAsync();

            var retrieveOp     = TableOperationHelper.Retrieve(key);
            var retrieveResult = await _table.ExecuteAsync(retrieveOp);

            var existingCacheEntry = retrieveResult.Result as CacheEntity;

            if (existingCacheEntry != null && existingCacheEntry.UtcExpiry < DateTime.UtcNow)
            {
                await RemoveAsync(key);

                return(null);
            }
            else
            {
                return(existingCacheEntry?.CacheItem);
            }
        }
Beispiel #6
0
        public void Set(string key, object entry, DateTime utcExpiry)
        {
            var insertOp = TableOperationHelper.InsertOrReplace(key, entry, utcExpiry);

            _table.Execute(insertOp);
        }
Beispiel #7
0
 public async Task RemoveAsync(string key)
 {
     var removeOp = TableOperationHelper.Delete(key);
     await _table.ExecuteAsync(removeOp);
 }
Beispiel #8
0
        public void Remove(string key)
        {
            var removeOp = TableOperationHelper.Delete(key);

            _table.Execute(removeOp);
        }