public void ExpiringDictionary_GetForKeyAndRefresh_Refreshes() { using (var map = new ExpiringDictionary <int, string>(10, 1)) { map.Add(1, "X"); HeartbeatTick(); _Clock.AddMilliseconds(10); Assert.AreEqual("X", map.GetForKeyAndRefresh(1)); HeartbeatTick(); Assert.AreEqual(1, map.Count); } }
/// <summary> /// See interface docs. /// </summary> /// <param name="icao"></param> /// <param name="registration"></param> /// <param name="maxThumbnails"></param> /// <returns></returns> public WebRequestResult <AirportDataThumbnailsJson> GetThumbnails(string icao, string registration, int maxThumbnails) { var thumbnailKey = new ThumbnailKey(icao, maxThumbnails); var cachedThumbnail = _ThumbnailCache.GetForKeyAndRefresh(thumbnailKey); if (cachedThumbnail != null) { cachedThumbnail.LastAccessTimeUtc = DateTime.UtcNow; } else { cachedThumbnail = new CachedThumbnail() { LastAccessTimeUtc = DateTime.UtcNow, Thumbnail = RequestThumbnails(icao, registration, maxThumbnails), }; _ThumbnailCache.UpsertAndRefresh(thumbnailKey, cachedThumbnail); } return(cachedThumbnail.Thumbnail); }