private async Task <UrlCacheInfo> InsertUrl(Uri uri) { var realm = Realm.GetInstance(); UrlCacheInfo hero = null; var response = await FetchFromWeb(uri); if (string.IsNullOrEmpty(response)) { return(hero); } var timestamp = DateTime.Now.Ticks; realm.Write(() => { hero = realm.CreateObject <UrlCacheInfo>(); hero.Response = response; hero.Url = uri.OriginalString; hero.Created = timestamp; hero.LastAccessed = timestamp; hero.LastUpdated = timestamp; }); _log.Log("New url cached: " + uri.OriginalString); return(hero); }
private async Task UpdateUrl(Uri uri, UrlCacheInfo hero) { var realm = Realm.GetInstance(); var response = await FetchFromWeb(uri); if (string.IsNullOrEmpty(response)) { return; } var timestamp = DateTime.Now.Ticks; realm.Write(() => { hero.Response = response; hero.Url = uri.OriginalString; hero.LastAccessed = timestamp; hero.LastUpdated = timestamp; }); }
private bool ShouldInvalidate(UrlCacheInfo hero, long freshnessTreshold) { return(TimeSpanBetween(hero.LastUpdated, DateTime.Now.Ticks) > freshnessTreshold); }