private void AddEntryToMemoryAndStore(PersistentCacheEntry entry) { _InMemoryEntries[entry.Key] = entry; if (_Options.IsPersistent && !_IsReloadingFromStore) { LiteDbCacheEntry liteDbEntry = CreateLiteDbEntryFromPersistentEntry(entry); entry.PersistentStoreId = _Options.PersistentStore.AddEntry(liteDbEntry); } }
private LiteDbCacheEntry CreateLiteDbEntryFromPersistentEntry(PersistentCacheEntry entry) { Type cacheValueType = entry.Value?.GetType() ?? typeof(object); LiteDbCacheEntry liteDbEntry = LiteDbCacheEntry.ConstructCacheEntry(cacheValueType); liteDbEntry.CacheName = _Options.CacheName; liteDbEntry.Priority = entry.Priority; liteDbEntry.Key = entry.Key; liteDbEntry.LastAccessed = entry.LastAccessed; liteDbEntry.AbsoluteExpiration = entry.AbsoluteExpiration; liteDbEntry.SlidingExpiration = entry.SlidingExpiration; liteDbEntry.SetValue(entry.Value); return(liteDbEntry); }