private void CleanCache() { foreach (ProductDetails p in SessionManager.shoppingCart) { CacheApplication.DeleteItemByProductId(p.productId); } }
private void AddDataInCache(long categoryId, string keywords, string key) { List <ProductDetails> products = null; List <ProductDetails> searchProducts = new List <ProductDetails>(); int numberOfProducts = 0; int productsByRow = Settings.Default.AmazonMarket_defaultCount; if (categoryId > 0) { numberOfProducts = SessionManager.ProductService.getNumberOfProductsByKeywords(keywords, categoryId); } else { numberOfProducts = SessionManager.ProductService.getNumberOfProductsByKeywords(keywords); } for (int i = 0; i < numberOfProducts; i++) { if (categoryId > 0) { products = SessionManager.ProductService.FindByKeywords(keywords, categoryId, i, productsByRow); } else { products = SessionManager.ProductService.FindByKeywords(keywords, i, productsByRow); } for (int j = 0; j < products.Count; j++) { if (!searchProducts.Contains(products[j])) { searchProducts.Add(products[j]); } } } CacheApplication.StoreItemsCache(key, searchProducts); }
private void LoadGrid(bool isPostBack) { //Cogemos los keywords String keywords = Request.Params.Get("keywords"); Int32 category = Convert.ToInt32(Request.Params.Get("category")); string key = keywords + Request.Params.Get("category"); if (isPostBack == true && CacheApplication.IsContainKey(key) == false) { first = true; } else if (isPostBack == true && CacheApplication.IsContainKey(key) == true) { inCache = true; } if (first) { try { if (isPostBack) { AddDataInCache(category, keywords, key); } gvProductsResult.AllowPaging = true; gvProductsResult.PageSize = Settings.Default.AmazonMarket_defaultCount; pbpDataSource.ObjectCreating += this.PbpDataSource_ObjectCreating; //Esto lo deberia de coger desde settings.settigns pero me daba error , CAMBIARLO LUEGO Type type = typeof(IProductService); string assemblyQualifiedName = type.AssemblyQualifiedName; pbpDataSource.TypeName = assemblyQualifiedName; pbpDataSource.EnablePaging = true; pbpDataSource.SelectMethod = Settings.Default.ObjectDS_ProductsResult_SelectMethod; //Añadimos el parametro keywords pbpDataSource.SelectParameters.Add("keywords", DbType.String, keywords); //Depende de si la categoria es all (-1) o una definida en la bd. if (category != -1) { pbpDataSource.SelectParameters.Add("categoryId", DbType.Int32, category.ToString()); } pbpDataSource.SelectCountMethod = Settings.Default.ObjectDS_ProductsResult_CountMethod; pbpDataSource.StartRowIndexParameterName = Settings.Default.ObjectDS_ProductsResult_StartIndexParameter; pbpDataSource.MaximumRowsParameterName = Settings.Default.ObjectDS_AccountOperations_CountParameter; /*gvProductsResult.AllowPaging = true; * gvProductsResult.PageSize = Settings.Default.AmazonMarket_defaultCount;*/ gvProductsResult.DataSource = pbpDataSource; //Antes de hacer el databind hay que poner la columna de id a visible para luego poder acceder a ella gvProductsResult.Columns[4].Visible = true; gvProductsResult.Columns[3].Visible = true; gvProductsResult.DataBind(); if (gvProductsResult.Rows.Count == 0) { lblAreProducts.Visible = true; } //Luego ya se pone a false. gvProductsResult.Columns[4].Visible = false; gvProductsResult.Columns[3].Visible = false; } catch (TargetInvocationException) { } } else if (inCache) { gvProductsResult.AllowPaging = true; gvProductsResult.PageSize = Settings.Default.AmazonMarket_defaultCount; gvProductsResult.DataSource = CacheApplication.GetCacheItem(key); //gvProductsResult.DataSource = productsOfPage; //Antes de hacer el databind hay que poner la columna de id a visible para luego poder acceder a ella gvProductsResult.Columns[4].Visible = true; gvProductsResult.Columns[3].Visible = true; gvProductsResult.DataBind(); //Luego ya se pone a false. gvProductsResult.Columns[4].Visible = false; gvProductsResult.Columns[3].Visible = false; } }