private static void AddMemoryCache(CacheItem cacheItem) { if (cacheItem != null) { Items.TryAdd(cacheItem.Type + ":" + cacheItem.Key, cacheItem); } }
public async Task SaveAsync(CacheItem cacheItem, bool inMemoryOnly = false) { cacheItem.Guid = Guid.NewGuid(); if (!inMemoryOnly) { await _collection.InsertOneAsync(cacheItem); } AddMemoryCache(cacheItem); }
public async Task RemoveAsync(string cacheItemId) { var builder = Builders <CacheItem> .Filter; var filter = builder.Eq(p => p.Guid, new Guid(cacheItemId)); await _collection.DeleteOneAsync(filter); var itemsToRemove = Items.Where(s => s.Value.Id == cacheItemId).ToList(); foreach (var cacheItem in itemsToRemove) { // TODO CacheItem ci; Items.TryRemove(CacheItem.GetKey(cacheItem.Value), out ci); } }
public async Task DeleteAsync(string siteId) { var builder = Builders <CacheItem> .Filter; var filter = builder.Eq(p => p.SiteId, siteId); await _collection.DeleteManyAsync(filter); var itemsToRemove = Items.Where(s => s.Value.SiteId == siteId).ToList(); foreach (var cacheItem in itemsToRemove) { // TODO CacheItem ci; Items.TryRemove(CacheItem.GetKey(cacheItem.Value), out ci); } }