public IActionResult StaticTable() { var request = StaticTableSearchRequest.FromHttpRequest(); var handlers = new ExampleStaticTableHandler().WithExtraHandlers(); var response = request.BuildResponse(handlers); return(new TemplateResult("zkweb.examples/static_table.html", new { response })); }
/// <summary> /// 根据当前http请求获取搜索结果 /// 结果会按请求参数和当前登录用户缓存一定时间 /// </summary> /// <returns></returns> public virtual StaticTableSearchResponse GetArticleSearchResponseFromHttpRequest() { return(ArticleSearchResultCache.GetOrCreate(0, () => { var configManager = Application.Ioc.Resolve <GenericConfigManager>(); var articleListSettings = configManager.GetData <ArticleListSettings>(); var searchRequest = StaticTableSearchRequest.FromHttpRequest( articleListSettings.ArticlesPerPage); var handlers = new ArticleTableHandler().WithExtraHandlers(); return searchRequest.BuildResponse(handlers); }, ArticleSearchResultCacheTime)); }
/// <summary> /// 根据当前http请求获取搜索结果 /// 结果会按请求参数和当前登录用户缓存一定时间 /// </summary> /// <returns></returns> public virtual StaticTableSearchResponse GetProductSearchResponseFromHttpRequest() { return(ProductSearchResultCache.GetOrCreate(0, () => { var configManager = Application.Ioc.Resolve <GenericConfigManager>(); var productListSettings = configManager.GetData <ProductListSettings>(); var searchRequest = StaticTableSearchRequest.FromHttpRequest( productListSettings.ProductsPerPage); var callbacks = new ProductTableCallback().WithExtensions(); var searchResponse = searchRequest.BuildResponseFromDatabase(callbacks); return searchResponse; }, ProductSearchResultCacheTime)); }
/// <summary> /// 根据当前http请求获取搜索结果 /// 结果会按请求参数和当前登录用户缓存一定时间 /// </summary> /// <returns></returns> public virtual StaticTableSearchResponse GetArticleSearchResponseFromHttpRequest() { // 从缓存获取 var searchResponse = ArticleSearchResultCache.GetOrDefault(0); if (searchResponse != null) { return(searchResponse); } // 从数据库获取 var configManager = Application.Ioc.Resolve <GenericConfigManager>(); var articleListSettings = configManager.GetData <ArticleListSettings>(); var searchRequest = StaticTableSearchRequest.FromHttpRequest( articleListSettings.ArticlesPerPage); var callbacks = new ArticleTableCallback().WithExtensions(); searchResponse = searchRequest.BuildResponseFromDatabase(callbacks); // 保存到缓存中并返回 ArticleSearchResultCache.Put(0, searchResponse, ArticleSearchResultCacheTime); return(searchResponse); }