/// <summary> /// Adds a settings object to the cache /// </summary> /// <param name="settings"></param> /// <returns>Guid representing token (key in cache dictionary)</returns> public Guid Store(SettingsCacheObject cacheObject) { Guid token = Guid.NewGuid(); Cache.Add(token, cacheObject); // asynchronously remove stale cached items RemoveStaleCachedItemsDelegate remover = (RemoveStaleCachedItems); remover.BeginInvoke(null, null); return token; }
public Guid Store(Guid token, SettingsCacheObject cacheObject) { Guid retval; var existingKeyValuePair = from kvp in Cache where kvp.Key.Equals(token) select kvp; if (0 == existingKeyValuePair.Count()) // new { retval = Store(cacheObject); } else // existing { retval = token; Cache[retval] = cacheObject; new RemoveStaleCachedItemsDelegate(RemoveStaleCachedItems).BeginInvoke(null, null); } return retval; }