public void ClearCacheTest() { ICacheService target = new CacheService(); var value = TestEntityFactory.GetEntity(); target["TestEntity2"] = value; target.Clear(); var result = target["Test"]; Assert.IsNull(result); }
public void DiskCacheTest() { Task.Run((Func <Task>)(async() => { using (var provider = new DiskCacheProvider(Path.Combine(Path.GetTempPath(), "Cache"))) { var service = new CacheService((IAsyncCacheProvider)provider, (Caching.CachePolicy)Caching.CachePolicy.Expires((TimeSpan)TimeSpan.FromHours((double)1))); Assert.AreEqual(await service.Fetch(Path.GetRandomFileName().Replace(".", ""), "ABC"), "ABC"); for (var i = 0; i < 1000; i++) { var _value = await service.FetchOrAdd <object>((string)"Test", (Func <Task <object> >) this.ValueFactory); Assert.AreEqual((object)_value, value); } { await service.Remove("Test"); value = null; var _value = await service.Fetch("Test", "Test"); Assert.AreEqual(_value, "Test"); Assert.AreNotEqual(_value, value); } { await service.Update <object>((string)"Test", (Func <Task <object> >) this.ValueFactory); var _value = await service.FetchOrAdd <object>((string)"Test", (Func <Task <object> >) this.ValueFactory); Assert.AreEqual((object)_value, value); } { await service.Clear(); var _value = await service.Fetch("Test", "Test"); Assert.AreEqual(_value, "Test"); Assert.AreNotEqual(_value, value); } } })).Wait(); }
public void ForceRefresh() { cacheService.Clear(); }
/// <summary> /// Updates the changes to a page. /// </summary> public async Task <Page> UpdateAsync(PageEditorVM vm, ClaimsPrincipal principal, Guid?revertedId = null) { await ValidateRequestAsync(vm); var page = await _db.Pages .Include(x => x.Aliases) .Include(x => x.MainPhoto) .GetAsync(x => x.Id == vm.Id && (x.IsDeleted == false || revertedId != null), "Страница не найдена"); await _validator.ValidateAsync(page, vm.Facts); var prevVm = page.IsDeleted ? null : _mapper.Map <PageEditorVM>(page); var changeset = await GetChangesetAsync(prevVm, vm, vm.Id, principal, revertedId); _db.Changes.Add(changeset); _mapper.Map(vm, page); page.MainPhotoId = (await FindMainPhotoAsync(vm.MainPhotoKey))?.Id; if (revertedId != null) { page.IsDeleted = false; } await _db.PageAliases.RemoveWhereAsync(x => x.Page.Id == vm.Id); var aliasValues = JsonConvert.DeserializeObject <List <string> >(vm.Aliases ?? "[]"); if (!aliasValues.Contains(vm.Title)) { aliasValues.Add(vm.Title); } _db.PageAliases.AddRange( aliasValues.Select((x, idx) => new PageAlias { Id = Guid.NewGuid(), Key = PageHelper.EncodeTitle(x).ToLowerInvariant(), Page = page, Order = idx, Title = x }) ); if (prevVm?.Title != vm.Title || prevVm?.Facts != vm.Facts) { _cache.Clear(); } else { _cache.Remove <PageDescriptionVM>(page.Key); _cache.Remove <InfoBlockVM>(page.Key); } if (revertedId == null) { await DiscardPageDraftAsync(vm.Id, principal); } return(page); }
public ActionResult Index(int province = 1, int city = 0, int mediacode = 0, int formatcode = 0, int ownercode = 0, int periodcode = 0, int authstatus = 0, int deadline = 0, int price = 0, int order = 0, int descending = 0, int page = 1, string query = null, string dq = null) { if (city == 1) { city = 0; } //搜索条件 QueryTerm queryTerm = new QueryTerm() { Province = province, City = city, MediaCode = mediacode, FormatCode = formatcode, OwnerCode = ownercode, PeriodCode = periodcode, Page = page, AuthStatus = authstatus, DeadLine = deadline, Price = price, Order = order, Descending = descending, Query = query, Dq = dq }; if (!string.IsNullOrEmpty(queryTerm.Dq)) { if (queryTerm.Dq.Equals(DateTime.Now.ToString("yyyy-MM-dd"))) { queryTerm.Dq = null; } } CacheService.Clear(); if (queryTerm.City != 0) { var cityCate = CityCateService.Find(queryTerm.City); queryTerm.CityCateCode = cityCate.Code; queryTerm.CityMaxCode = Utilities.GetMaxCode(cityCate.Code, cityCate.Level); } if (queryTerm.MediaCode != 0) { var mediaCate = MediaCateService.Find(queryTerm.MediaCode); queryTerm.MediaCateCode = mediaCate.Code; queryTerm.MediaMaxCode = Utilities.GetMaxCode(mediaCate.Code, mediaCate.Level); } ViewBag.Search = GetSearch(queryTerm); ViewBag.PriceListFilter = GetPriceListFilter(queryTerm); ViewBag.DeadLineMonthFilter = GetDeadLineMonthFilter(queryTerm); ViewBag.DefaultOrderUrl = Url.Action("index", new { province = queryTerm.Province, city = queryTerm.City, mediacode = queryTerm.MediaCode, formatcode = queryTerm.FormatCode, ownercode = queryTerm.OwnerCode, periodcode = queryTerm.PeriodCode, authstatus = queryTerm.AuthStatus, deadline = queryTerm.DeadLine, price = queryTerm.Price, order = 0, descending = 0, page = 1, }); ViewBag.PriceOrderAscUrl = Url.Action("index", new { province = queryTerm.Province, city = queryTerm.City, mediacode = queryTerm.MediaCode, formatcode = queryTerm.FormatCode, ownercode = queryTerm.OwnerCode, periodcode = queryTerm.PeriodCode, authstatus = queryTerm.AuthStatus, deadline = queryTerm.DeadLine, price = queryTerm.Price, order = (int)SortProperty.Price, descending = (int)SortDirection.Ascending, page = 1 }); ViewBag.PriceOrderDescUrl = Url.Action("index", new { province = queryTerm.Province, city = queryTerm.City, mediacode = queryTerm.MediaCode, formatcode = queryTerm.FormatCode, ownercode = queryTerm.OwnerCode, periodcode = queryTerm.PeriodCode, authstatus = queryTerm.AuthStatus, deadline = queryTerm.DeadLine, price = queryTerm.Price, order = (int)SortProperty.Price, descending = (int)SortDirection.Descending, page = 1 }); ViewBag.NoAuthedUrl = Url.Action("index", new { province = queryTerm.Province, city = queryTerm.City, mediacode = queryTerm.MediaCode, formatcode = queryTerm.FormatCode, ownercode = queryTerm.OwnerCode, periodcode = queryTerm.PeriodCode, authstatus = 0, deadline = queryTerm.DeadLine, price = queryTerm.Price, order = queryTerm.Order, descending = queryTerm.Descending, page = 1 }); ViewBag.AuthedUrl = Url.Action("index", new { province = queryTerm.Province, city = queryTerm.City, mediacode = queryTerm.MediaCode, formatcode = queryTerm.FormatCode, ownercode = queryTerm.OwnerCode, periodcode = queryTerm.PeriodCode, authstatus = 1, deadline = queryTerm.DeadLine, price = queryTerm.Price, order = queryTerm.Order, descending = queryTerm.Descending, page = 1 }); ViewBag.Authed = queryTerm.AuthStatus == 1; ViewBag.Result = GetResult(queryTerm); ViewBag.Sort = GetSort(queryTerm); ViewBag.Query = queryTerm; return(View()); }
public ActionResult Clear() { CacheService.Clear(); return(RedirectToAction("Index")); }
public void Clear() => CacheService.Clear();
public void DiskCache() { using (var provider = new DiskCacheProvider(@"C:\Temp\Cache")) { var cacheService = new CacheService(provider); var tasks = new List <Task>(); //测试并发创建值 for (int i = 0; i < 1000; i++) { Func <int, Task> task = async(j) => { await Task.Yield(); var value = await cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))); Assert.AreEqual(value, _value); }; tasks.Add(task(i)); } Task.WaitAll(tasks.ToArray()); //测试从缓存读取 for (int i = 0; i < 1000; i++) { Func <int, Task> task = async(j) => { await Task.Yield(); var value = await cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))); Assert.AreEqual(value, _value); }; tasks.Add(task(i)); } Task.WaitAll(tasks.ToArray()); //清除缓存 cacheService.Clear(); _value = null; //测试创建新值 for (int i = 0; i < 1000; i++) { Func <int, Task> task = async(j) => { await Task.Yield(); var value = await cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))); Assert.AreEqual(value, _value); }; tasks.Add(task(i)); } Task.WaitAll(tasks.ToArray()); cacheService.Clear(); { _value = null; var value = cacheService.FetchOrAdd("Test", ValueFactory, CachePolicy.Expires(TimeSpan.FromHours(1))).Result; Assert.IsNotNull(_value); Assert.AreEqual(_value, value); } } }
public void DiskCache() { using ( var provider = new DiskCacheProvider( @"C:\Temp\Cache" ) ) { var cacheService = new CacheService( provider ); var tasks = new List<Task>(); //测试并发创建值 for ( int i = 0; i < 1000; i++ ) { Func<int, Task> task = async ( j ) => { await Task.Yield(); var value = await cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ); Assert.AreEqual( value, _value ); }; tasks.Add( task( i ) ); } Task.WaitAll( tasks.ToArray() ); //测试从缓存读取 for ( int i = 0; i < 1000; i++ ) { Func<int, Task> task = async ( j ) => { await Task.Yield(); var value = await cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ); Assert.AreEqual( value, _value ); }; tasks.Add( task( i ) ); } Task.WaitAll( tasks.ToArray() ); //清除缓存 cacheService.Clear(); _value = null; //测试创建新值 for ( int i = 0; i < 1000; i++ ) { Func<int, Task> task = async ( j ) => { await Task.Yield(); var value = await cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ); Assert.AreEqual( value, _value ); }; tasks.Add( task( i ) ); } Task.WaitAll( tasks.ToArray() ); cacheService.Clear(); { _value = null; var value = cacheService.FetchOrAdd( "Test", ValueFactory, CachePolicy.Expires( TimeSpan.FromHours( 1 ) ) ).Result; Assert.IsNotNull( _value ); Assert.AreEqual( _value, value ); } } }
/// <summary> /// Clears all cached data. /// </summary> /// <returns>Number of purged cached elements.</returns> public int ClearCache() { return(Cache.Clear()); }
public void DiskCacheTest() { Task.Run( (Func<Task>) (async () => { using ( var provider = new DiskCacheProvider( Path.Combine( Path.GetTempPath(), "Cache" ) ) ) { var service = new CacheService( (IAsyncCacheProvider) provider, (Caching.CachePolicy) Caching.CachePolicy.Expires( (TimeSpan) TimeSpan.FromHours( (double) 1 ) ) ); Assert.AreEqual( await service.Fetch( Path.GetRandomFileName().Replace( ".", "" ), "ABC" ), "ABC" ); for ( var i = 0; i < 1000; i++ ) { var _value = await service.FetchOrAdd<object>( (string) "Test", (Func<Task<object>>) this.ValueFactory ); Assert.AreEqual( (object) _value, value ); } { await service.Remove( "Test" ); value = null; var _value = await service.Fetch( "Test", "Test" ); Assert.AreEqual( _value, "Test" ); Assert.AreNotEqual( _value, value ); } { await service.Update<object>( (string) "Test", (Func<Task<object>>) this.ValueFactory ); var _value = await service.FetchOrAdd<object>( (string) "Test", (Func<Task<object>>) this.ValueFactory ); Assert.AreEqual( (object) _value, value ); } { await service.Clear(); var _value = await service.Fetch( "Test", "Test" ); Assert.AreEqual( _value, "Test" ); Assert.AreNotEqual( _value, value ); } } }) ).Wait(); }
public void Clear_should_clear_the_cache() { _service.Clear(); Assert.Null(_service.Database); }
private void LimpiarCache() { var cache = new CacheService(); cache.Clear(); }