/// <summary> /// Loads the specified local cache. /// </summary> /// <param name="_localCache">The local cache.</param> /// <param name="dbAllPageUrlRepository">The database all page URL repository.</param> /// <param name="dbPageUrlRepository">The database page URL repository.</param> /// <param name="restoresstyle">The restoresstyle.</param> public static void Load(IMemoryCache _localCache, IAllPageURLRepository dbAllPageUrlRepository, IPageURLRepository dbPageUrlRepository, RestoreStoreStyleEnum restoresstyle) { if (restoresstyle == RestoreStoreStyleEnum.File) { if (File.Exists(@"storevalues.json")) { List <PageURL> _allKeys = JsonConvert.DeserializeObject <List <PageURL> >(File.ReadAllText(@"storevalues.json")); _localCache.Set("AllKeys", _allKeys); } } if (restoresstyle == RestoreStoreStyleEnum.Db) { var _allKeys = dbAllPageUrlRepository.GetAllPageURL().Result; _localCache.Set("AllKeys", _allKeys); if (_allKeys != null) { if (_allKeys.AllUrls != null) { _allKeys.AllUrls.ForEach(item => { _localCache.Set(item.ShortURL, item); }); } } } }
/// <summary> /// Stores the specified local cache. /// </summary> /// <param name="_localCache">The local cache.</param> /// <param name="storestyle">The storestyle.</param> /// <param name="alldatabase">The alldatabase.</param> /// <param name="database">The database.</param> public static void Store(IMemoryCache _localCache, RestoreStoreStyleEnum storestyle, IAllPageURLRepository alldatabase, IPageURLRepository database) { bool blanklist = true; var _allKeys = new AllPageUrls(); _localCache.TryGetValue("AllKeys", out _allKeys); if (storestyle == RestoreStoreStyleEnum.File) { using FileStream fs = File.Create("storevalues.json"); var _output = JsonConvert.SerializeObject(_allKeys.AllUrls); byte[] bytes = Encoding.UTF8.GetBytes(_output); fs.Write(bytes, 0, bytes.Length); } if (storestyle == RestoreStoreStyleEnum.Db) { var allDbkey = alldatabase.GetAllPageURL(); var allDbkeys = database.GetAllPageURL(); Guid originalId = Guid.NewGuid(); if (allDbkey.Result != null) { originalId = allDbkey.Result.Id; blanklist = false; } var Allkeys = new AllPageUrls() { Id = originalId, AllUrls = new List <PageURL>() }; Allkeys.AllUrls.AddRange(_allKeys.AllUrls); if (blanklist) { alldatabase.SetAllUrls(Allkeys); } else { alldatabase.Update(Allkeys); } } }